From a6757a02e12aa584bd74dbcde18a7886be8e9029 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Sat, 26 Sep 2009 21:59:28 -0500 Subject: Move middleware and route configuration from AC::Dispatcher to Rails application object --- railties/lib/rails/application.rb | 6 +++++- railties/lib/rails/console_app.rb | 2 +- railties/lib/rails/initializer.rb | 2 +- railties/test/console_app_test.rb | 6 ++++++ railties/test/fcgi_dispatcher_test.rb | 6 ++++++ 5 files changed, 19 insertions(+), 3 deletions(-) (limited to 'railties') diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index d3057aaa11..14336d90c3 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -1,10 +1,14 @@ module Rails class Application + attr_accessor :middleware, :routes + def initialize - @app = ActionController::Dispatcher.new + @middleware = ActionDispatch::MiddlewareStack.new + @routes = ActionController::Routing::Routes end def call(env) + @app ||= middleware.build(@routes) @app.call(env) end end diff --git a/railties/lib/rails/console_app.rb b/railties/lib/rails/console_app.rb index fc84a50e91..1ad62e5058 100644 --- a/railties/lib/rails/console_app.rb +++ b/railties/lib/rails/console_app.rb @@ -27,6 +27,6 @@ end def reload! puts "Reloading..." ActionDispatch::Callbacks.new(lambda {}, true) - ActionController::Dispatcher.router.reload + ActionController::Routing::Routes.reload true end diff --git a/railties/lib/rails/initializer.rb b/railties/lib/rails/initializer.rb index 399ce26618..f6aca082e8 100644 --- a/railties/lib/rails/initializer.rb +++ b/railties/lib/rails/initializer.rb @@ -608,8 +608,8 @@ Run `rake gems:install` to install the missing gems. Initializer.default.add :build_application do if configuration.frameworks.include?(:action_controller) - ActionController::Dispatcher.middleware = configuration.middleware Rails.application = Rails::Application.new + Rails.application.middleware = configuration.middleware end end end diff --git a/railties/test/console_app_test.rb b/railties/test/console_app_test.rb index 7d697d4d05..1437e6d885 100644 --- a/railties/test/console_app_test.rb +++ b/railties/test/console_app_test.rb @@ -5,6 +5,12 @@ require 'action_controller' # console_app uses 'action_controller/integration' require 'rails/dispatcher' require 'rails/console_app' +module Rails + def self.application + ActionController::Routing::Routes + end +end + # console_app sets Test::Unit.run to work around the at_exit hook in test/unit, which kills IRB if Test::Unit.respond_to?(:run=) Test::Unit.run = false diff --git a/railties/test/fcgi_dispatcher_test.rb b/railties/test/fcgi_dispatcher_test.rb index 1e704b862f..4d77a321a0 100644 --- a/railties/test/fcgi_dispatcher_test.rb +++ b/railties/test/fcgi_dispatcher_test.rb @@ -5,6 +5,12 @@ uses_gem "fcgi", "0.8.7" do require 'action_controller' require 'rails/fcgi_handler' +module Rails + def self.application + ActionController::Routing::Routes + end +end + class RailsFCGIHandlerTest < Test::Unit::TestCase def setup @log = StringIO.new -- cgit v1.2.3