diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 4e67627d8bf15..a7231b9e590ae 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,9 +1,20 @@ -* Add ability to set a prefix name for routes which have hyphen(s). +* Automatically convert dashes to underscores for shorthand routes, e.g: + + get '/our-work/latest' + + When running `rake routes` you will get the following output: + + Prefix Verb URI Pattern Controller#Action + our_work_latest GET /our-work/latest(.:format) our_work#latest + + *Mikko Johansson* + +* Automatically convert dashes to underscores for url helpers, e.g: get '/contact-us' => 'pages#contact' get '/about-us' => 'pages#about_us' - The above routes will inspected to + When running `rake routes` you will get the following output: Prefix Verb URI Pattern Controller#Action contact_us GET /contact-us(.:format) pages#contact diff --git a/actionpack/test/dispatch/routing/inspector_test.rb b/actionpack/test/dispatch/routing/inspector_test.rb index 2746c683ba852..804546428452e 100644 --- a/actionpack/test/dispatch/routing/inspector_test.rb +++ b/actionpack/test/dispatch/routing/inspector_test.rb @@ -37,7 +37,6 @@ def self.inspect end engine.routes.draw do get '/cart', :to => 'cart#show' - get '/view-cart', :to => 'cart#show' end output = draw do @@ -51,8 +50,7 @@ def self.inspect " blog /blog Blog::Engine", "", "Routes for Blog::Engine:", - " cart GET /cart(.:format) cart#show", - "view_cart GET /view-cart(.:format) cart#show" + " cart GET /cart(.:format) cart#show" ], output end @@ -162,6 +160,19 @@ def test_rake_routes_shows_route_with_constraints ], output end + def test_rake_routes_shows_routes_with_dashes + output = draw do + get 'about-us' => 'pages#about_us' + get 'our-work/latest' + end + + assert_equal [ + " Prefix Verb URI Pattern Controller#Action", + " about_us GET /about-us(.:format) pages#about_us", + "our_work_latest GET /our-work/latest(.:format) our_work#latest" + ], output + end + class RackApp def self.call(env) end diff --git a/actionpack/test/dispatch/routing/route_set_test.rb b/actionpack/test/dispatch/routing/route_set_test.rb index 3831c4c585075..0e488d2b8878c 100644 --- a/actionpack/test/dispatch/routing/route_set_test.rb +++ b/actionpack/test/dispatch/routing/route_set_test.rb @@ -30,12 +30,10 @@ def call(env) draw do get 'foo', to: SimpleApp.new('foo#index') get 'bar', to: SimpleApp.new('bar#index') - get 'foo-bar', to: SimpleApp.new('bar#index') end assert_equal '/foo', url_helpers.foo_path assert_equal '/bar', url_helpers.bar_path - assert_equal '/foo-bar', url_helpers.foo_bar_path end test "url helpers are updated when route is updated" do diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index 497c3e568c2a3..ebea5a87923de 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -2912,6 +2912,16 @@ def test_trailing_slash assert @response.ok?, 'route with trailing slash and with QUERY_STRING should work' end + def test_route_with_dashes_in_path + draw do + get '/contact-us', to: 'pages#contact_us' + end + + get '/contact-us' + assert_equal 'pages#contact_us', @response.body + assert_equal '/contact-us', contact_us_path + end + def test_shorthand_route_with_dashes_in_path draw do get '/about-us/index'