aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/dispatcher.rb
diff options
context:
space:
mode:
authorPratik Naik <pratiknaik@gmail.com>2009-02-22 23:52:02 +0100
committerPratik Naik <pratiknaik@gmail.com>2009-02-22 23:52:02 +0100
commit21b80f8144f8f05a105b2989c79d3ed2f2d0d4cd (patch)
treebfec5946303ceb582674904c5f9927e9b4020272 /actionpack/lib/action_controller/dispatcher.rb
parent91ab75373f13054485f5d804d7e2c80d466ff5e0 (diff)
parent441e4e22352c8805a882f6a661ab3982dd7eda12 (diff)
downloadrails-21b80f8144f8f05a105b2989c79d3ed2f2d0d4cd.tar.gz
rails-21b80f8144f8f05a105b2989c79d3ed2f2d0d4cd.tar.bz2
rails-21b80f8144f8f05a105b2989c79d3ed2f2d0d4cd.zip
Merge commit 'mainstream/master'
Diffstat (limited to 'actionpack/lib/action_controller/dispatcher.rb')
-rw-r--r--actionpack/lib/action_controller/dispatcher.rb41
1 files changed, 27 insertions, 14 deletions
diff --git a/actionpack/lib/action_controller/dispatcher.rb b/actionpack/lib/action_controller/dispatcher.rb
index e91babde10..ec40b5c4e6 100644
--- a/actionpack/lib/action_controller/dispatcher.rb
+++ b/actionpack/lib/action_controller/dispatcher.rb
@@ -5,8 +5,9 @@ module ActionController
class << self
def define_dispatcher_callbacks(cache_classes)
unless cache_classes
- # Development mode callbacks
- before_dispatch :reload_application
+ unless self.middleware.include?(Reloader)
+ self.middleware.insert_after(Failsafe, Reloader)
+ end
ActionView::Helpers::AssetTagHelper.cache_asset_timestamps = false
end
@@ -41,6 +42,30 @@ module ActionController
callback = ActiveSupport::Callbacks::Callback.new(:prepare_dispatch, block, :identifier => identifier)
@prepare_dispatch_callbacks.replace_or_append!(callback)
end
+
+ def run_prepare_callbacks
+ if defined?(Rails) && Rails.logger
+ logger = Rails.logger
+ else
+ logger = Logger.new($stderr)
+ end
+
+ new(logger).send :run_callbacks, :prepare_dispatch
+ end
+
+ def reload_application
+ # Run prepare callbacks before every request in development mode
+ run_prepare_callbacks
+
+ Routing::Routes.reload
+ end
+
+ def cleanup_application
+ # Cleanup the application before processing the current request.
+ ActiveRecord::Base.reset_subclasses if defined?(ActiveRecord)
+ ActiveSupport::Dependencies.clear
+ ActiveRecord::Base.clear_reloadable_connections! if defined?(ActiveRecord)
+ end
end
cattr_accessor :middleware
@@ -87,18 +112,6 @@ module ActionController
dispatch
end
- def reload_application
- # Cleanup the application before processing the current request.
- ActiveRecord::Base.reset_subclasses if defined?(ActiveRecord)
- ActiveSupport::Dependencies.clear
- ActiveRecord::Base.clear_reloadable_connections! if defined?(ActiveRecord)
-
- # Run prepare callbacks before every request in development mode
- run_callbacks :prepare_dispatch
-
- Routing::Routes.reload
- end
-
def flush_logger
Base.logger.flush
end