From d7cb7cc13e0628e7a739d6c9ddcfa0a8b3f26826 Mon Sep 17 00:00:00 2001 From: brainopia Date: Sat, 16 Jan 2010 11:00:56 +0300 Subject: [PATCH] improve readability of help for script/generate --- railties/lib/rails/generators.rb | 14 +++++++++++--- railties/test/generators_test.rb | 8 ++++++-- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb index 3713a38..a9b11d2 100644 --- a/railties/lib/rails/generators.rb +++ b/railties/lib/rails/generators.rb @@ -222,9 +222,10 @@ module Rails others -= Rails::Generators.builtin others.sort! - puts "Please select a generator." - puts "Builtin: #{builtin.join(', ')}." - puts "Others: #{others.join(', ')}." unless others.empty? + puts "Usage" + puts " script/generate [generator] [generate-specific options]" + list_generators("Built-in generators:", builtin) + list_generators("Other generators:", others) unless others.empty? end protected @@ -273,6 +274,13 @@ module Rails end end + # Prints generators with header + def self.list_generators(header, generators) + puts + puts header + generators.each {|name| puts " #{name}" } + end + end end diff --git a/railties/test/generators_test.rb b/railties/test/generators_test.rb index 2df218d..1db849a 100644 --- a/railties/test/generators_test.rb +++ b/railties/test/generators_test.rb @@ -105,8 +105,12 @@ class GeneratorsTest < GeneratorsTestCase end def test_rails_generators_with_others_information - output = capture(:stdout){ Rails::Generators.help }.split("\n").last - assert_equal "Others: active_record:fixjour, fixjour, foobar:foobar, mspec, rails:javascripts, xspec.", output + output = capture(:stdout){ Rails::Generators.help }.split("\n\n").last + list_of_other_generators = "Other generators:\n" + %w(active_record:fixjour fixjour foobar:foobar mspec rails:javascripts xspec).each do |generator| + list_of_other_generators << " #{generator}\n" + end + assert_equal list_of_other_generators, output end def test_warning_is_shown_if_generator_cant_be_loaded -- 1.6.4.2