Permalink
Browse files

Move hooks back to initializers (we need an API that allows hooks to …

…be replaced).
  • Loading branch information...
1 parent cd3033e commit 693d2be82706d7dc40af6860a26330c49c27f151 @josevalim josevalim committed Dec 13, 2011
Showing with 21 additions and 36 deletions.
  1. +0 −32 railties/lib/rails/application.rb
  2. +21 −4 railties/lib/rails/application/finisher.rb
@@ -112,38 +112,6 @@ def routes_reloader #:nodoc:
@routes_reloader ||= RoutesReloader.new
end
- # A routes reloader hook that is used to setup to_prepare callbacks.
- # A plugin may override this if they desire to provide a more
- # exquisite route reloading.
- # :api: plugin
- def set_routes_reloader_hook
- reloader = routes_reloader
- hook = lambda { reloader.execute_if_updated }
- hook.call
- self.reloaders << reloader
- ActionDispatch::Reloader.to_prepare(&hook)
- end
-
- # An app dependencies hook that is used to setup to_cleanup callbacks.
- # A plugin may override this if they desire to provide a more exquisite app reloading.
- # :api: plugin
- def set_dependencies_hook
- callback = lambda do
- ActiveSupport::DescendantsTracker.clear
- ActiveSupport::Dependencies.clear
- end
-
- if config.reload_classes_only_on_change
- reloader = config.file_watcher.new(watchable_args, true, &callback)
- self.reloaders << reloader
- # We need to set a to_prepare callback regardless of the reloader result, i.e.
- # models should be reloaded if any of the reloaders (i18n, routes) were updated.
- ActionDispatch::Reloader.to_prepare(:prepend => true, &callback)
- else
- ActionDispatch::Reloader.to_cleanup(&callback)
- end
- end
-
# Returns an array of file paths appended with a hash of directories-extensions
# suitable for ActiveSupport::FileUpdateChecker API.
def watchable_args
@@ -62,14 +62,31 @@ module Finisher
# Set app reload just after the finisher hook to ensure
# routes added in the hook are still loaded.
- initializer :set_routes_reloader_hook do |app|
- app.set_routes_reloader_hook
+ initializer :set_routes_reloader_hook do
+ reloader = routes_reloader
+ hook = lambda { reloader.execute_if_updated }
+ hook.call
+ self.reloaders << reloader
+ ActionDispatch::Reloader.to_prepare(&hook)
end
# Set app reload just after the finisher hook to ensure
# paths added in the hook are still loaded.
- initializer :set_dependencies_hook, :group => :all do |app|
- app.set_dependencies_hook
+ initializer :set_dependencies_hook, :group => :all do
+ callback = lambda do
+ ActiveSupport::DescendantsTracker.clear
+ ActiveSupport::Dependencies.clear
+ end
+
+ if config.reload_classes_only_on_change
+ reloader = config.file_watcher.new(watchable_args, true, &callback)
+ self.reloaders << reloader
+ # We need to set a to_prepare callback regardless of the reloader result, i.e.
+ # models should be reloaded if any of the reloaders (i18n, routes) were updated.
+ ActionDispatch::Reloader.to_prepare(:prepend => true, &callback)
+ else
+ ActionDispatch::Reloader.to_cleanup(&callback)
+ end
end
# Disable dependency loading during request cycle

0 comments on commit 693d2be

Please sign in to comment.