Skip to content
Browse files

Give hooks the flexibility to choose the type of callback.

  • Loading branch information...
1 parent c2e3ce8 commit c0466603288252a5db8a4d8cf0ca193004a542ea @josevalim josevalim committed Dec 12, 2011
Showing with 13 additions and 13 deletions.
  1. +9 −7 railties/lib/rails/application.rb
  2. +4 −6 railties/lib/rails/application/finisher.rb
View
16 railties/lib/rails/application.rb
@@ -115,19 +115,21 @@ def routes_reloader #:nodoc:
# 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
View
10 railties/lib/rails/application/finisher.rb
@@ -66,16 +66,14 @@ module Finisher
# 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

0 comments on commit c046660

Please sign in to comment.
Something went wrong with that request. Please try again.