aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2011-10-29 09:03:45 -0700
committerJosé Valim <jose.valim@gmail.com>2011-10-29 09:03:45 -0700
commite886f97669d5aa072af7bb625f5e16635e187124 (patch)
tree8f74f7e745ca159c0689832dd01386416b8cb2ba
parente22a4c6f28296684171d8b033aab57d8380a2c74 (diff)
parent010622bb989cb9fa3aac600a7fa7bcb894bb081a (diff)
downloadrails-e886f97669d5aa072af7bb625f5e16635e187124.tar.gz
rails-e886f97669d5aa072af7bb625f5e16635e187124.tar.bz2
rails-e886f97669d5aa072af7bb625f5e16635e187124.zip
Merge pull request #3337 from htanata/fix_rake_routes_for_controller_only_route
Remove trailing "#" on rake routes for controller only routes
-rw-r--r--railties/lib/rails/application/route_inspector.rb15
-rw-r--r--railties/test/application/route_inspect_test.rb12
2 files changed, 18 insertions, 9 deletions
diff --git a/railties/lib/rails/application/route_inspector.rb b/railties/lib/rails/application/route_inspector.rb
index 8c6911e6bb..8252f21aa7 100644
--- a/railties/lib/rails/application/route_inspector.rb
+++ b/railties/lib/rails/application/route_inspector.rb
@@ -10,20 +10,21 @@ module Rails
end
routes = all_routes.collect do |route|
+ route_reqs = route.requirements
- reqs = route.requirements.dup
rack_app = route.app unless route.app.class.name.to_s =~ /^ActionDispatch::Routing/
- endpoint = rack_app ? rack_app.inspect : "#{reqs[:controller]}##{reqs[:action]}"
- constraints = reqs.except(:controller, :action)
+ controller = route_reqs[:controller] || ':controller'
+ action = route_reqs[:action] || ':action'
- reqs = endpoint == '#' ? '' : endpoint
+ endpoint = rack_app ? rack_app.inspect : "#{controller}##{action}"
+ constraints = route_reqs.except(:controller, :action)
- unless constraints.empty?
- reqs = reqs.empty? ? constraints.inspect : "#{reqs} #{constraints.inspect}"
- end
+ reqs = endpoint
+ reqs += " #{constraints.inspect}" unless constraints.empty?
verb = route.verb.source.gsub(/[$^]/, '')
+
{:name => route.name.to_s, :verb => verb, :path => route.path.spec.to_s, :reqs => reqs}
end
diff --git a/railties/test/application/route_inspect_test.rb b/railties/test/application/route_inspect_test.rb
index add8256b5d..78980705ed 100644
--- a/railties/test/application/route_inspect_test.rb
+++ b/railties/test/application/route_inspect_test.rb
@@ -49,12 +49,20 @@ module ApplicationTests
assert_equal ["root / pages#main"], output
end
+ def test_inspect_routes_shows_dynamic_action_route
+ @set.draw do
+ match 'api/:action' => 'api'
+ end
+ output = @inspector.format @set.routes
+ assert_equal [" /api/:action(.:format) api#:action"], output
+ end
+
def test_inspect_routes_shows_controller_and_action_only_route
@set.draw do
match ':controller/:action'
end
output = @inspector.format @set.routes
- assert_equal [" /:controller/:action(.:format) "], output
+ assert_equal [" /:controller/:action(.:format) :controller#:action"], output
end
def test_inspect_routes_shows_controller_and_action_route_with_constraints
@@ -62,7 +70,7 @@ module ApplicationTests
match ':controller(/:action(/:id))', :id => /\d+/
end
output = @inspector.format @set.routes
- assert_equal [" /:controller(/:action(/:id))(.:format) {:id=>/\\d+/}"], output
+ assert_equal [" /:controller(/:action(/:id))(.:format) :controller#:action {:id=>/\\d+/}"], output
end
def test_rake_routes_shows_route_with_defaults