From fc4582fb6684ce72f5628629ea7d061659b790f8 Mon Sep 17 00:00:00 2001 From: Carlhuda Date: Thu, 25 Feb 2010 16:48:36 -0800 Subject: Final pass at removing the router from a global constant --- actionpack/lib/action_controller/railtie.rb | 10 ++++++++-- actionpack/lib/action_controller/railties/url_helpers.rb | 14 ++++++++++++++ actionpack/lib/action_dispatch/routing.rb | 1 - actionpack/lib/action_dispatch/routing/routes.rb | 5 ----- .../lib/action_dispatch/testing/assertions/routing.rb | 2 +- actionpack/lib/action_dispatch/testing/integration.rb | 2 -- actionpack/lib/action_view/helpers/atom_feed_helper.rb | 2 +- 7 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 actionpack/lib/action_controller/railties/url_helpers.rb delete mode 100644 actionpack/lib/action_dispatch/routing/routes.rb (limited to 'actionpack') diff --git a/actionpack/lib/action_controller/railtie.rb b/actionpack/lib/action_controller/railtie.rb index 5a16d82e49..3df70d4a4d 100644 --- a/actionpack/lib/action_controller/railtie.rb +++ b/actionpack/lib/action_controller/railtie.rb @@ -1,5 +1,5 @@ -require "action_controller" require "rails" +require "action_controller" require "action_view/railtie" require "active_support/core_ext/class/subclasses" @@ -8,6 +8,8 @@ module ActionController railtie_name :action_controller require "action_controller/railties/log_subscriber" + require "action_controller/railties/url_helpers" + log_subscriber ActionController::Railties::LogSubscriber.new initializer "action_controller.logger" do @@ -27,5 +29,9 @@ module ActionController initializer "action_controller.set_helpers_path" do |app| ActionController::Base.helpers_path = app.config.paths.app.helpers.to_a end + + initializer "action_controller.url_helpers" do |app| + ActionController::Base.extend ::ActionController::Railtie::UrlHelpers.with(app.routes) + end end -end +end \ No newline at end of file diff --git a/actionpack/lib/action_controller/railties/url_helpers.rb b/actionpack/lib/action_controller/railties/url_helpers.rb new file mode 100644 index 0000000000..354d3fa898 --- /dev/null +++ b/actionpack/lib/action_controller/railties/url_helpers.rb @@ -0,0 +1,14 @@ +module ActionController + class Railtie + module UrlHelpers + def self.with(router) + Module.new do + define_method(:inherited) do |klass| + super + klass.send(:include, router.named_url_helpers) + end + end + end + end + end +end \ No newline at end of file diff --git a/actionpack/lib/action_dispatch/routing.rb b/actionpack/lib/action_dispatch/routing.rb index 2cc7fe5344..5bc3205c51 100644 --- a/actionpack/lib/action_dispatch/routing.rb +++ b/actionpack/lib/action_dispatch/routing.rb @@ -204,7 +204,6 @@ module ActionDispatch autoload :DeprecatedMapper, 'action_dispatch/routing/deprecated_mapper' autoload :Mapper, 'action_dispatch/routing/mapper' autoload :Route, 'action_dispatch/routing/route' - autoload :Routes, 'action_dispatch/routing/routes' autoload :RouteSet, 'action_dispatch/routing/route_set' autoload :UrlFor, 'action_dispatch/routing/url_for' diff --git a/actionpack/lib/action_dispatch/routing/routes.rb b/actionpack/lib/action_dispatch/routing/routes.rb deleted file mode 100644 index 34afada9c9..0000000000 --- a/actionpack/lib/action_dispatch/routing/routes.rb +++ /dev/null @@ -1,5 +0,0 @@ -# A singleton that stores the current route set -# ActionDispatch::Routing::Routes = ActionDispatch::Routing::RouteSet.new - -# To preserve compatibility with pre-3.0 Rails action_controller/deprecated.rb -# defines ActionDispatch::Routing::Routes as an alias diff --git a/actionpack/lib/action_dispatch/testing/assertions/routing.rb b/actionpack/lib/action_dispatch/testing/assertions/routing.rb index f281febbc5..17caa2e030 100644 --- a/actionpack/lib/action_dispatch/testing/assertions/routing.rb +++ b/actionpack/lib/action_dispatch/testing/assertions/routing.rb @@ -125,7 +125,7 @@ module ActionDispatch end # A helper to make it easier to test different route configurations. - # This method temporarily replaces ActionDispatch::Routing::Routes + # This method temporarily replaces @router # with a new RouteSet instance. # # The new instance is yielded to the passed block. Typically the block diff --git a/actionpack/lib/action_dispatch/testing/integration.rb b/actionpack/lib/action_dispatch/testing/integration.rb index 3b9d8b0318..3bd9502e91 100644 --- a/actionpack/lib/action_dispatch/testing/integration.rb +++ b/actionpack/lib/action_dispatch/testing/integration.rb @@ -188,11 +188,9 @@ module ActionDispatch unless defined? @named_routes_configured # install the named routes in this session instance. klass = singleton_class - # ActionDispatch::Routing::Routes.install_helpers(klass) # the helpers are made protected by default--we make them public for # easier access during testing and troubleshooting. - # klass.module_eval { public *ActionDispatch::Routing::Routes.named_routes.helpers } @named_routes_configured = true end end diff --git a/actionpack/lib/action_view/helpers/atom_feed_helper.rb b/actionpack/lib/action_view/helpers/atom_feed_helper.rb index 4305a0d5f5..a26a8c9b4b 100644 --- a/actionpack/lib/action_view/helpers/atom_feed_helper.rb +++ b/actionpack/lib/action_view/helpers/atom_feed_helper.rb @@ -8,7 +8,7 @@ module ActionView # Full usage example: # # config/routes.rb: - # ActionDispatch::Routing::Routes.draw do |map| + # Basecamp::Application.routes.draw do |map| # map.resources :posts # map.root :controller => "posts" # end -- cgit v1.2.3