aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorschneems <richard.schneeman@gmail.com>2014-05-24 14:07:54 +0200
committerschneems <richard.schneeman@gmail.com>2014-05-24 14:11:08 +0200
commit3915c459801ee2ce03b5ab38f2512f9317aa1d82 (patch)
tree4f2903e9a5c7ff7f779ebf8c89092cda20c85689 /railties/lib
parentf9860fcbe2973025df6ccf4bba0431492af09575 (diff)
downloadrails-3915c459801ee2ce03b5ab38f2512f9317aa1d82.tar.gz
rails-3915c459801ee2ce03b5ab38f2512f9317aa1d82.tar.bz2
rails-3915c459801ee2ce03b5ab38f2512f9317aa1d82.zip
print generators on failed generate
Let's say we just ran: ``` $ rails g migrate add_click_to_issue_assignment ``` We will get an error that looks like: ``` Could not find generator migrate. ``` This patch adds all existing migrations to the output to make it easier for a developer to find a valid migration. ``` Could not find generator "migrate". Please select a valid generator: Rails: assets controller generator helper integration_test mailer migration model resource scaffold scaffold_controller task ``` It would be nice to do some spelling detection and suggest alternatives, but for now this should help.
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/generators.rb28
1 files changed, 16 insertions, 12 deletions
diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb
index dce734b54e..0ad3dbaeaa 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.inspect}."
+ 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:/, '') }