aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorMaurizio De Santis <m.desantis@morganspa.com>2014-01-23 14:50:29 +0100
committerMaurizio De Santis <desantis.maurizio@gmail.com>2014-01-24 12:41:48 +0100
commitc1f8a0d61409b6c9fa16847b0ecf694cc4d4cecf (patch)
tree5f59ae676ee1124cacec3f1ffb7308f4c3fbefe4 /actionpack
parent6ef0569b0bf6e13d63f6c51790745b2007b92973 (diff)
downloadrails-c1f8a0d61409b6c9fa16847b0ecf694cc4d4cecf.tar.gz
rails-c1f8a0d61409b6c9fa16847b0ecf694cc4d4cecf.tar.bz2
rails-c1f8a0d61409b6c9fa16847b0ecf694cc4d4cecf.zip
Fix `rake routes` error when `Rails::Engine` with empty routes is mounted; fixes rails/rails#13810
Squash
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md6
-rw-r--r--actionpack/lib/action_dispatch/routing/inspector.rb6
-rw-r--r--actionpack/test/dispatch/routing/inspector_test.rb21
3 files changed, 30 insertions, 3 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index a7231b9e59..9add810f81 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,3 +1,9 @@
+* Fix `rake routes` error when `Rails::Engine` with empty routes is mounted.
+
+ Fixes #13810.
+
+ *Maurizio De Santis*
+
* Automatically convert dashes to underscores for shorthand routes, e.g:
get '/our-work/latest'
diff --git a/actionpack/lib/action_dispatch/routing/inspector.rb b/actionpack/lib/action_dispatch/routing/inspector.rb
index f612e91aef..71a0c5e826 100644
--- a/actionpack/lib/action_dispatch/routing/inspector.rb
+++ b/actionpack/lib/action_dispatch/routing/inspector.rb
@@ -194,9 +194,9 @@ module ActionDispatch
end
def widths(routes)
- [routes.map { |r| r[:name].length }.max,
- routes.map { |r| r[:verb].length }.max,
- routes.map { |r| r[:path].length }.max]
+ [routes.map { |r| r[:name].length }.max || 0,
+ routes.map { |r| r[:verb].length }.max || 0,
+ routes.map { |r| r[:path].length }.max || 0]
end
end
diff --git a/actionpack/test/dispatch/routing/inspector_test.rb b/actionpack/test/dispatch/routing/inspector_test.rb
index 8045464284..74515e3f57 100644
--- a/actionpack/test/dispatch/routing/inspector_test.rb
+++ b/actionpack/test/dispatch/routing/inspector_test.rb
@@ -54,6 +54,27 @@ module ActionDispatch
], output
end
+ def test_displaying_routes_for_engines_without_routes
+ engine = Class.new(Rails::Engine) do
+ def self.inspect
+ "Blog::Engine"
+ end
+ end
+ engine.routes.draw do
+ end
+
+ output = draw do
+ mount engine => "/blog", as: "blog"
+ end
+
+ assert_equal [
+ "Prefix Verb URI Pattern Controller#Action",
+ " blog /blog Blog::Engine",
+ "",
+ "Routes for Blog::Engine:"
+ ], output
+ end
+
def test_cart_inspect
output = draw do
get '/cart', :to => 'cart#show'