From 82b700a89deffb6526f7fbfd9942f1e723cad9a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Valim?= <jose.valim@gmail.com>
Date: Sat, 28 Aug 2010 22:53:18 -0300
Subject: Ensure we are not calling length on nil.

---
 railties/lib/rails/tasks/routes.rake | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

(limited to 'railties')

diff --git a/railties/lib/rails/tasks/routes.rake b/railties/lib/rails/tasks/routes.rake
index 2cee84767d..9db8b60969 100644
--- a/railties/lib/rails/tasks/routes.rake
+++ b/railties/lib/rails/tasks/routes.rake
@@ -1,8 +1,7 @@
 desc 'Print out all defined routes in match order, with names. Target specific controller with CONTROLLER=x.'
 task :routes => :environment do
   Rails.application.reload_routes!
-
-  all_routes   = Rails.application.routes.routes
+  all_routes = Rails.application.routes.routes
 
   if ENV['CONTROLLER']
     all_routes = all_routes.select{ |route| route.defaults[:controller] == ENV['CONTROLLER'] }
@@ -19,9 +18,9 @@ task :routes => :environment do
 
   routes.reject! { |r| r[:path] =~ %r{/rails/info/properties} } # Skip the route if it's internal info route
 
-  name_width = routes.map{ |r| r[:name] }.map(&:length).max
-  verb_width = routes.map{ |r| r[:verb] }.map(&:length).max
-  path_width = routes.map{ |r| r[:path] }.map(&:length).max
+  name_width = routes.map{ |r| r[:name].length if r[:name] }.max
+  verb_width = routes.map{ |r| r[:verb].length if r[:verb] }.max
+  path_width = routes.map{ |r| r[:path].length if r[:path] }.max
 
   routes.each do |r|
     puts "#{r[:name].rjust(name_width)} #{r[:verb].ljust(verb_width)} #{r[:path].ljust(path_width)} #{r[:reqs]}"
-- 
cgit v1.2.3