diff options
author | José Valim <jose.valim@gmail.com> | 2009-06-23 19:27:46 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2009-06-23 19:27:46 +0200 |
commit | a7ba4b95e9e9f9bd6a542903d8af5500edab3a39 (patch) | |
tree | b1ed3cc579cfab2ed6c025444574a9aaeb2c75f6 | |
parent | 4494a752c3c568c65fa899c54486153a1a5fa187 (diff) | |
download | rails-a7ba4b95e9e9f9bd6a542903d8af5500edab3a39.tar.gz rails-a7ba4b95e9e9f9bd6a542903d8af5500edab3a39.tar.bz2 rails-a7ba4b95e9e9f9bd6a542903d8af5500edab3a39.zip |
TestUnit, you have a home.
-rwxr-xr-x | railties/bin/gen | 2 | ||||
-rw-r--r-- | railties/lib/generators/base.rb | 80 |
2 files changed, 48 insertions, 34 deletions
diff --git a/railties/bin/gen b/railties/bin/gen index 6cc66ac455..ad3a793610 100755 --- a/railties/bin/gen +++ b/railties/bin/gen @@ -22,7 +22,7 @@ end name = ARGV.shift -if klass = Thor::Util.find_by_namespace("rails:generators:#{name}") +if klass = Thor::Util.find_by_namespace("rails:#{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 5f0b3eb369..fe4ec2a19a 100644 --- a/railties/lib/generators/base.rb +++ b/railties/lib/generators/base.rb @@ -2,6 +2,7 @@ require 'generators/actions' module Rails module Generators + class Error < Thor::Error end @@ -12,7 +13,7 @@ module Rails # Automatically sets the source root based on the class name. # def self.source_root - @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'rails', generator_name, 'templates')) + @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. @@ -21,50 +22,63 @@ module Rails if name super else - @namespace ||= "rails:generators:#{generator_name}" + @namespace ||= "#{base_name}:#{generator_name}" end end - protected + protected - # Use Rails default banner. - # - def self.banner - "#{$0} #{generator_name} #{self.arguments.map(&:usage).join(' ')} [options]" - end + # Use Rails default banner. + # + def self.banner + "#{$0} #{generator_name} #{self.arguments.map(&:usage).join(' ')} [options]" + 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:generators:metal") - # and to set the source root ("generators/metal/templates"). - # - def self.generator_name - @generator_name ||= begin - klass_name = self.name.gsub(/^Rails::Generators::/, '') - klass_name.gsub!(/Generator$/, '') - klass_name.underscore + # Sets the base_name. Overwriten by test unit generators. + # + def self.base_name + 'rails' end - end - # Small macro to add ruby as an option to the generator with proper - # default value plus an instance helper method called shebang. - # - def self.add_shebang_option! - require 'rbconfig' - default = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) + # 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.gsub(/^Rails::Generators::/, '') + klass_name.gsub!(/Generator$/, '') + klass_name.underscore + end + end - class_option :ruby, :type => :string, :aliases => "-r", :default => default, - :desc => "Path to the Ruby binary of your choice" + # Small macro to add ruby as an option to the generator with proper + # default value plus an instance helper method called shebang. + # + def self.add_shebang_option! + require 'rbconfig' + default = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) - class_eval do - protected - def shebang - "#!#{options[:ruby] || "/usr/bin/env ruby"}" + class_option :ruby, :type => :string, :aliases => "-r", :default => default, + :desc => "Path to the Ruby binary of your choice" + + class_eval do + protected + def shebang + "#!#{options[:ruby] || "/usr/bin/env ruby"}" + end end end - end + end + class TestUnit < Base + protected + def self.base_name + 'testunit' + end end + end end |