aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbhishek Jain <jainabhishek1610@gmail.com>2016-02-11 15:16:33 +0530
committerAbhishek Jain <jainabhishek1610@gmail.com>2016-02-11 15:16:33 +0530
commit4e3931aac20bc17e935dfbbbdf46ed1d2131ec74 (patch)
tree7bb0cd22af29cba78a778d10e4681cc03f7a7041
parent31778a34a8c6e1d186c1e807491c1f44c5f07357 (diff)
downloadrails-4e3931aac20bc17e935dfbbbdf46ed1d2131ec74.tar.gz
rails-4e3931aac20bc17e935dfbbbdf46ed1d2131ec74.tar.bz2
rails-4e3931aac20bc17e935dfbbbdf46ed1d2131ec74.zip
Fixes routes to match verbs and path with -g option
-rw-r--r--actionpack/lib/action_dispatch/routing/inspector.rb5
-rw-r--r--railties/test/application/rake_test.rb10
2 files changed, 12 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/routing/inspector.rb b/actionpack/lib/action_dispatch/routing/inspector.rb
index b806ee015b..983f1daeb3 100644
--- a/actionpack/lib/action_dispatch/routing/inspector.rb
+++ b/actionpack/lib/action_dispatch/routing/inspector.rb
@@ -84,14 +84,15 @@ module ActionDispatch
if filter.is_a?(Hash) && filter[:controller]
{ controller: /#{filter[:controller].downcase.sub(/_?controller\z/, '').sub('::', '/')}/ }
elsif filter
- { controller: /#{filter}/, action: /#{filter}/ }
+ { controller: /#{filter}/, action: /#{filter}/, verb: /#{filter}/, name: /#{filter}/, path: /#{filter}/ }
end
end
def filter_routes(filter)
if filter
@routes.select do |route|
- filter.any? { |default, value| route.defaults[default] =~ value }
+ route_wrapper = RouteWrapper.new(route)
+ filter.any? { |default, value| route_wrapper.send(default) =~ value }
end
else
@routes
diff --git a/railties/test/application/rake_test.rb b/railties/test/application/rake_test.rb
index 745a3e3ec5..fce0c95179 100644
--- a/railties/test/application/rake_test.rb
+++ b/railties/test/application/rake_test.rb
@@ -179,12 +179,20 @@ module ApplicationTests
app_file "config/routes.rb", <<-RUBY
Rails.application.routes.draw do
get '/cart', to: 'cart#show'
- get '/basketball', to: 'basketball#index'
+ post '/cart', to: 'cart#create'
+ get '/basketballs', to: 'basketball#index'
end
RUBY
output = Dir.chdir(app_path){ `bin/rails routes -g show` }
assert_equal "Prefix Verb URI Pattern Controller#Action\n cart GET /cart(.:format) cart#show\n", output
+
+ output = Dir.chdir(app_path){ `bin/rails routes -g POST` }
+ assert_equal "Prefix Verb URI Pattern Controller#Action\n POST /cart(.:format) cart#create\n", output
+
+ output = Dir.chdir(app_path){ `bin/rails routes -g basketballs` }
+ assert_equal " Prefix Verb URI Pattern Controller#Action\n" \
+ "basketballs GET /basketballs(.:format) basketball#index\n", output
end
def test_rake_routes_with_controller_search_key