From 010622bb989cb9fa3aac600a7fa7bcb894bb081a Mon Sep 17 00:00:00 2001 From: Hendy Tanata Date: Sat, 15 Oct 2011 17:20:54 +0800 Subject: On inpsect routes, show :controller and :action to indicate dynamic. --- railties/lib/rails/application/route_inspector.rb | 15 ++++++++------- railties/test/application/route_inspect_test.rb | 12 ++++++++++-- 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 -- cgit v1.2.3