diff options
author | José Valim <jose.valim@gmail.com> | 2011-12-12 16:23:50 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-12-12 16:23:50 +0100 |
commit | c0466603288252a5db8a4d8cf0ca193004a542ea (patch) | |
tree | 8964e6e5489a646c423cb3ea2fcc98ad0036482d | |
parent | c2e3ce8d1e1174e66536d59d8d97eb2cc8ce6f25 (diff) | |
download | rails-c0466603288252a5db8a4d8cf0ca193004a542ea.tar.gz rails-c0466603288252a5db8a4d8cf0ca193004a542ea.tar.bz2 rails-c0466603288252a5db8a4d8cf0ca193004a542ea.zip |
Give hooks the flexibility to choose the type of callback.
-rw-r--r-- | railties/lib/rails/application.rb | 16 | ||||
-rw-r--r-- | railties/lib/rails/application/finisher.rb | 10 |
2 files changed, 13 insertions, 13 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 2648476d6d..acbfd7078b 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -115,19 +115,21 @@ module Rails # A plugin may override this if they desire to provide a more # exquisite route reloading. # :api: plugin - def routes_reloader_hook - app = self - lambda { app.routes_reloader.execute_if_updated } + def set_routes_reloader_hook + reloader = routes_reloader + hook = lambda { reloader.execute_if_updated } + hook.call + ActionDispatch::Reloader.to_prepare(&hook) end - # An app reloader hook that is used to setup to_cleanup callbacks. + # 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 app_reloader_hook - lambda { + def set_dependencies_hook + ActionDispatch::Reloader.to_cleanup do ActiveSupport::DescendantsTracker.clear ActiveSupport::Dependencies.clear - } + end end # Initialize the application passing the given group. By default, the diff --git a/railties/lib/rails/application/finisher.rb b/railties/lib/rails/application/finisher.rb index 9c25e05ee5..17e7aa0f28 100644 --- a/railties/lib/rails/application/finisher.rb +++ b/railties/lib/rails/application/finisher.rb @@ -66,16 +66,14 @@ module Rails # Set app reload just after the finisher hook to ensure # paths added in the hook are still loaded. - initializer :set_clear_dependencies_hook, :group => :all do |app| - ActionDispatch::Reloader.to_cleanup(&app.app_reloader_hook) + initializer :set_dependencies_hook, :group => :all do |app| + app.set_dependencies_hook end # Set app reload just after the finisher hook to ensure # routes added in the hook are still loaded. - initializer :set_routes_reloader do |app| - reloader = app.routes_reloader_hook - reloader.call - ActionDispatch::Reloader.to_prepare(&reloader) + initializer :set_routes_reloader_hook do |app| + app.set_routes_reloader_hook end # Disable dependency loading during request cycle |