aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/application
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-12-12 15:18:19 +0100
committerJosé Valim <jose.valim@gmail.com>2011-12-12 15:18:19 +0100
commit27f0add3f93510c1aee2491467dffbb1e4015bc6 (patch)
tree52f089e3ddde9088cc377315fa18a39d9cbc2f13 /railties/lib/rails/application
parent57e0c038d627fe0c5d85883a0a29c17257f9c4e5 (diff)
downloadrails-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.rb7
-rw-r--r--railties/lib/rails/application/finisher.rb36
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