aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-05-26 14:51:15 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-05-26 14:51:15 -0300
commit70d126779eece0b2b16dcdb7229cfc3e2f4dabcf (patch)
tree9fe29b4973ca41c86a50575a388ac059da7da323 /railties
parentb4ea6054588b06ef0418bd7d15e88d63a4f9035f (diff)
parente83ce84ef991f06d15d66dce27f06e01477b617e (diff)
downloadrails-70d126779eece0b2b16dcdb7229cfc3e2f4dabcf.tar.gz
rails-70d126779eece0b2b16dcdb7229cfc3e2f4dabcf.tar.bz2
rails-70d126779eece0b2b16dcdb7229cfc3e2f4dabcf.zip
Merge pull request #15294 from schneems/schneems/generator-output-in-error2
print generators on failed generate
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/generators.rb28
-rw-r--r--railties/test/generators_test.rb6
2 files changed, 20 insertions, 14 deletions
diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb
index dce734b54e..04ce38f841 100644
--- a/railties/lib/rails/generators.rb
+++ b/railties/lib/rails/generators.rb
@@ -156,7 +156,8 @@ module Rails
args << "--help" if args.empty? && klass.arguments.any? { |a| a.required? }
klass.start(args, config)
else
- puts "Could not find generator #{namespace}."
+ puts "Could not find generator '#{namespace}'. Please choose a generator below."
+ print_generators
end
end
@@ -199,17 +200,6 @@ module Rails
# Show help message with available generators.
def self.help(command = 'generate')
- lookup!
-
- namespaces = subclasses.map{ |k| k.namespace }
- namespaces.sort!
-
- groups = Hash.new { |h,k| h[k] = [] }
- namespaces.each do |namespace|
- base = namespace.split(':').first
- groups[base] << namespace
- end
-
puts "Usage: rails #{command} GENERATOR [args] [options]"
puts
puts "General options:"
@@ -222,6 +212,20 @@ module Rails
puts "Please choose a generator below."
puts
+ print_generators
+ end
+
+ def self.print_generators
+ lookup!
+
+ namespaces = subclasses.map{ |k| k.namespace }
+ namespaces.sort!
+
+ groups = Hash.new { |h,k| h[k] = [] }
+ namespaces.each do |namespace|
+ base = namespace.split(':').first
+ groups[base] << namespace
+ end
# Print Rails defaults first.
rails = groups.delete("rails")
rails.map! { |n| n.sub(/^rails:/, '') }
diff --git a/railties/test/generators_test.rb b/railties/test/generators_test.rb
index eac28badfe..8d6dbf80c2 100644
--- a/railties/test/generators_test.rb
+++ b/railties/test/generators_test.rb
@@ -21,8 +21,10 @@ class GeneratorsTest < Rails::Generators::TestCase
end
def test_invoke_when_generator_is_not_found
- output = capture(:stdout){ Rails::Generators.invoke :unknown }
- assert_equal "Could not find generator unknown.\n", output
+ name = :unknown
+ output = capture(:stdout){ Rails::Generators.invoke name }
+ assert_match "Could not find generator '#{name}'", output
+ assert_match "scaffold", output
end
def test_help_when_a_generator_with_required_arguments_is_invoked_without_arguments