diff options
Diffstat (limited to 'railties')
-rwxr-xr-x | railties/bin/gen | 4 | ||||
-rw-r--r-- | railties/lib/generators/base.rb | 21 | ||||
-rw-r--r-- | railties/lib/generators/test_unit.rb | 4 |
3 files changed, 12 insertions, 17 deletions
diff --git a/railties/bin/gen b/railties/bin/gen index ad3a793610..fab4866407 100755 --- a/railties/bin/gen +++ b/railties/bin/gen @@ -10,7 +10,7 @@ end if ARGV.size == 0 puts "Please select a generator. Options: foo, bar" return -else ARGV.size == 1 +elsif ARGV.size == 1 ARGV << "--help" end @@ -22,7 +22,7 @@ end name = ARGV.shift -if klass = Thor::Util.find_by_namespace("rails:#{name}") +if klass = Thor::Util.find_by_namespace("rails:generators:#{name}") klass.start elsif klass = Thor::Util.find_by_namespace(name) klass.start diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb index 4f394d2e38..e40c018a59 100644 --- a/railties/lib/generators/base.rb +++ b/railties/lib/generators/base.rb @@ -15,13 +15,15 @@ module Rails @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), base_name, generator_name, 'templates')) end - # Convenience method to get the namespace from the class name. + # Convenience method to get the namespace from the class name. It's the + # same as Thor default except that the Generator at the end of the class + # is removed. # - def self.namespace(name=nil) + def self.namespace(name=nil) #:nodoc: if name super else - @namespace ||= "#{base_name}:#{generator_name}" + @namespace ||= "#{base_name}:generators:#{generator_name}" end end @@ -33,18 +35,15 @@ module Rails "#{$0} #{generator_name} #{self.arguments.map(&:usage).join(' ')} [options]" end - # Sets the base_name. Overwriten by test unit generators. + # Sets the base_name taking into account the current class namespace. # - def self.base_name - 'rails' + def self.base_name #:nodoc: + @base_name ||= self.name.split('::').first.underscore end # Removes the namespaces and get the generator name. For example, # Rails::Generators::MetalGenerator will return "metal" as generator name. # - # The name is used to set the namespace (in this case "rails:metal") - # and to set the source root ("rails/metal/templates"). - # def self.generator_name @generator_name ||= begin klass_name = self.name.split('::').last @@ -61,7 +60,7 @@ module Rails default = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) class_option :ruby, :type => :string, :aliases => "-r", :default => default, - :desc => "Path to the Ruby binary of your choice" + :desc => "Path to the Ruby binary of your choice", :banner => "PATH" no_tasks do define_method :shebang do @@ -78,7 +77,7 @@ module Rails define_method :invoke_test_framework do return unless options[:test_framework] - name = "#{options[:test_framework]}:#{self.class.generator_name}" + name = "#{options[:test_framework]}:generators:#{self.class.generator_name}" begin invoke name diff --git a/railties/lib/generators/test_unit.rb b/railties/lib/generators/test_unit.rb index ecf4c546ed..16d097c3c8 100644 --- a/railties/lib/generators/test_unit.rb +++ b/railties/lib/generators/test_unit.rb @@ -3,10 +3,6 @@ require 'generators/named_base' module TestUnit module Generators class Base < Rails::Generators::NamedBase - protected - def self.base_name - 'test_unit' - end end end end |