diff options
author | José Valim <jose.valim@gmail.com> | 2011-12-12 15:18:19 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-12-12 15:18:19 +0100 |
commit | 27f0add3f93510c1aee2491467dffbb1e4015bc6 (patch) | |
tree | 52f089e3ddde9088cc377315fa18a39d9cbc2f13 /railties/lib/rails/application | |
parent | 57e0c038d627fe0c5d85883a0a29c17257f9c4e5 (diff) | |
download | rails-27f0add3f93510c1aee2491467dffbb1e4015bc6.tar.gz rails-27f0add3f93510c1aee2491467dffbb1e4015bc6.tar.bz2 rails-27f0add3f93510c1aee2491467dffbb1e4015bc6.zip |
Improve docs for Rails::Application and add routes_reloader_hook and app_reloader_hooks.
Diffstat (limited to 'railties/lib/rails/application')
-rw-r--r-- | railties/lib/rails/application/bootstrap.rb | 7 | ||||
-rw-r--r-- | railties/lib/rails/application/finisher.rb | 36 |
2 files changed, 22 insertions, 21 deletions
diff --git a/railties/lib/rails/application/bootstrap.rb b/railties/lib/rails/application/bootstrap.rb index 1ae90056d9..e189009cc5 100644 --- a/railties/lib/rails/application/bootstrap.rb +++ b/railties/lib/rails/application/bootstrap.rb @@ -59,13 +59,6 @@ module Rails end end - initializer :set_clear_dependencies_hook, :group => :all do - ActionDispatch::Reloader.to_cleanup do - ActiveSupport::DescendantsTracker.clear - ActiveSupport::Dependencies.clear - end - end - # Sets the dependency loading mechanism. # TODO: Remove files from the $" and always use require. initializer :initialize_dependency_mechanism, :group => :all do diff --git a/railties/lib/rails/application/finisher.rb b/railties/lib/rails/application/finisher.rb index fc7d205a6f..df2853498a 100644 --- a/railties/lib/rails/application/finisher.rb +++ b/railties/lib/rails/application/finisher.rb @@ -20,12 +20,6 @@ module Rails end end - initializer :add_to_prepare_blocks do - config.to_prepare_blocks.each do |block| - ActionDispatch::Reloader.to_prepare(&block) - end - end - initializer :add_builtin_route do |app| if Rails.env.development? app.routes.append do @@ -38,14 +32,22 @@ module Rails build_middleware_stack end - initializer :run_prepare_callbacks do - ActionDispatch::Reloader.prepare! - end - initializer :define_main_app_helper do |app| app.routes.define_mounted_helper(:main_app) end + initializer :add_to_prepare_blocks do + config.to_prepare_blocks.each do |block| + ActionDispatch::Reloader.to_prepare(&block) + end + end + + # This needs to happen before eager load so it happens + # in exactly the same point regardless of config.cache_classes + initializer :run_prepare_callbacks do + ActionDispatch::Reloader.prepare! + end + initializer :eager_load! do if config.cache_classes && !$rails_rake_task ActiveSupport.run_load_hooks(:before_eager_load, self) @@ -53,15 +55,21 @@ module Rails end end + # All initialization is done, including eager loading in production initializer :finisher_hook do ActiveSupport.run_load_hooks(:after_initialize, self) end - # Force routes to be loaded just at the end and add it to to_prepare callbacks - # This needs to be after the finisher hook to ensure routes added in the hook - # are still loaded. + # 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) + 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 = lambda { app.routes_reloader.execute_if_updated } + reloader = app.routes_reloader_hook reloader.call ActionDispatch::Reloader.to_prepare(&reloader) end |