diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2012-05-09 11:48:33 +0100 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2012-05-09 11:53:15 +0100 |
commit | beea9f5d4eb96a6d13863a403ce100ae9710259a (patch) | |
tree | d731fc73fc76586f24cbf70c845063e816723214 /actionpack/lib/action_dispatch | |
parent | e154823935859ae918ca26a7e73477d331e4a142 (diff) | |
download | rails-beea9f5d4eb96a6d13863a403ce100ae9710259a.tar.gz rails-beea9f5d4eb96a6d13863a403ce100ae9710259a.tar.bz2 rails-beea9f5d4eb96a6d13863a403ce100ae9710259a.zip |
Refactor Generator class to not rely on in-place editing the controller
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/route_set.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb index a2044cc33b..58c67e2cbe 100644 --- a/actionpack/lib/action_dispatch/routing/route_set.rb +++ b/actionpack/lib/action_dispatch/routing/route_set.rb @@ -460,12 +460,12 @@ module ActionDispatch normalize_options! normalize_controller_action_id! use_relative_controller! - controller.sub!(%r{^/}, '') if controller + normalize_controller! handle_nil_action! end def controller - @controller ||= @options[:controller] + @options[:controller] end def current_controller @@ -494,11 +494,11 @@ module ActionDispatch if options[:controller] options[:action] ||= 'index' - options[:controller] = options[:controller].to_s.dup + options[:controller] = options[:controller].to_s end if options[:action] - options[:action] = options[:action].to_s.dup + options[:action] = options[:action].to_s end end @@ -522,10 +522,15 @@ module ActionDispatch old_parts = current_controller.split('/') size = controller.count("/") + 1 parts = old_parts[0...-size] << controller - @controller = @options[:controller] = parts.join("/") + @options[:controller] = parts.join("/") end end + # Remove leading slashes from controllers + def normalize_controller! + @options[:controller] = controller.sub(%r{^/}, '') if controller + end + # This handles the case of :action => nil being explicitly passed. # It is identical to :action => "index" def handle_nil_action! |