diff options
author | José Valim <jose.valim@gmail.com> | 2009-07-15 11:33:36 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2009-07-15 11:33:36 +0200 |
commit | 0702e04e0d671227259f71f614adfe3f35f88b48 (patch) | |
tree | 9f3c34075fbb4ed4c227f66fd3168de86f8ab1f4 /railties/lib/generators | |
parent | a06c825b464758a0c22f8b089a596e46f1bba5cb (diff) | |
download | rails-0702e04e0d671227259f71f614adfe3f35f88b48.tar.gz rails-0702e04e0d671227259f71f614adfe3f35f88b48.tar.bz2 rails-0702e04e0d671227259f71f614adfe3f35f88b48.zip |
Refactored some generators to make use of improved invocations on thor.
Diffstat (limited to 'railties/lib/generators')
11 files changed, 27 insertions, 37 deletions
diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb index 30f138c62a..c1acd4c94f 100644 --- a/railties/lib/generators/base.rb +++ b/railties/lib/generators/base.rb @@ -6,15 +6,15 @@ module Rails end class Base < Thor::Group - include Rails::Generators::Actions - include Thor::Actions - # Automatically sets the source root based on the class name. # def self.source_root - @_rails_source_root ||= File.expand_path(File.join(File.dirname(__FILE__), base_name, generator_name, 'templates')) + File.expand_path(File.join(File.dirname(__FILE__), base_name, generator_name, 'templates')) end + include Thor::Actions + include Rails::Generators::Actions + # Tries to get the description from a USAGE file one folder above the source # root otherwise uses a default description. # diff --git a/railties/lib/generators/rails/generator/generator_generator.rb b/railties/lib/generators/rails/generator/generator_generator.rb index 8a4e949b3d..2fc97b20d3 100644 --- a/railties/lib/generators/rails/generator/generator_generator.rb +++ b/railties/lib/generators/rails/generator/generator_generator.rb @@ -3,22 +3,21 @@ module Rails class GeneratorGenerator < NamedBase check_class_collision :suffix => "Generator" - def copy_generator_file - template "generator.rb", generator_dir("#{file_name}_generator.rb") - end - - def copy_usage_file - template "USAGE", generator_dir("USAGE") - end + class_option :namespace, :type => :boolean, :default => true, + :desc => "Namespace generator under lib/generators/name" - def create_templates_dir - empty_directory generator_dir("templates") + def craete_generator_files + directory '.', generator_dir end protected - def generator_dir(join) - File.join("lib", "generators", file_name, join) + def generator_dir + if options[:namespace] + File.join("lib", "generators", file_name) + else + File.join("lib", "generators") + end end end diff --git a/railties/lib/generators/rails/plugin/templates/lib/generators/%file_name%_generator.rb.tt b/railties/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt index 675f00043f..675f00043f 100644 --- a/railties/lib/generators/rails/plugin/templates/lib/generators/%file_name%_generator.rb.tt +++ b/railties/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt diff --git a/railties/lib/generators/rails/generator/templates/USAGE b/railties/lib/generators/rails/generator/templates/USAGE deleted file mode 100644 index ea9f4f12cc..0000000000 --- a/railties/lib/generators/rails/generator/templates/USAGE +++ /dev/null @@ -1,8 +0,0 @@ -Description: - Explain the generator - -Example: - ./script/generate <%= file_name %> Thing - - This will create: - what/will/it/create diff --git a/railties/lib/generators/rails/plugin/templates/lib/generators/USAGE.tt b/railties/lib/generators/rails/generator/templates/USAGE.tt index ea9f4f12cc..ea9f4f12cc 100644 --- a/railties/lib/generators/rails/plugin/templates/lib/generators/USAGE.tt +++ b/railties/lib/generators/rails/generator/templates/USAGE.tt diff --git a/railties/lib/generators/rails/generator/templates/generator.rb b/railties/lib/generators/rails/generator/templates/generator.rb deleted file mode 100644 index 675f00043f..0000000000 --- a/railties/lib/generators/rails/generator/templates/generator.rb +++ /dev/null @@ -1,5 +0,0 @@ -class <%= class_name %>Generator < Rails::Generators::NamedBase - def self.source_root - @source_root ||= File.expand_path(File.join(File.dirname(__FILE__), 'templates')) - end -end diff --git a/railties/lib/generators/rails/plugin/templates/lib/generators/templates/.empty_directory b/railties/lib/generators/rails/generator/templates/templates/.empty_directory index e69de29bb2..e69de29bb2 100644 --- a/railties/lib/generators/rails/plugin/templates/lib/generators/templates/.empty_directory +++ b/railties/lib/generators/rails/generator/templates/templates/.empty_directory diff --git a/railties/lib/generators/rails/plugin/plugin_generator.rb b/railties/lib/generators/rails/plugin/plugin_generator.rb index 903f720e12..49fe409ea8 100644 --- a/railties/lib/generators/rails/plugin/plugin_generator.rb +++ b/railties/lib/generators/rails/plugin/plugin_generator.rb @@ -1,12 +1,11 @@ +require 'generators/rails/generator/generator_generator' + module Rails module Generators class PluginGenerator < NamedBase class_option :tasks, :type => :boolean, :aliases => "-t", :default => false, :desc => "When supplied creates tasks base files." - class_option :generator, :type => :boolean, :aliases => "-g", :default => false, - :desc => "When supplied creates generator base files." - check_class_collision def create_root_files @@ -17,16 +16,21 @@ module Rails directory 'lib', plugin_dir('lib'), false # non-recursive end - hook_for :test_framework - def create_tasks_files return unless options[:tasks] directory 'tasks', plugin_dir('tasks') end - def create_generator_files - return unless options[:generator] - directory 'lib/generators', plugin_dir('lib/generators') + hook_for :generator, :aliases => "-g", :type => :boolean do |instance, generator| + instance.inside_with_padding instance.send(:plugin_dir) do + instance.invoke generator, [ instance.name ], :namespace => false + end + end + + hook_for :test_framework do |instance, test_framework| + instance.inside_with_padding instance.send(:plugin_dir) do + instance.invoke test_framework + end end protected diff --git a/railties/lib/generators/test_unit/plugin/plugin_generator.rb b/railties/lib/generators/test_unit/plugin/plugin_generator.rb index fd8c4cb413..05adf58c4f 100644 --- a/railties/lib/generators/test_unit/plugin/plugin_generator.rb +++ b/railties/lib/generators/test_unit/plugin/plugin_generator.rb @@ -6,7 +6,7 @@ module TestUnit check_class_collision :suffix => "Test" def create_test_files - directory 'test', "vendor/plugins/#{file_name}/test" + directory '.', 'test' end end end diff --git a/railties/lib/generators/test_unit/plugin/templates/test/%file_name%_test.rb.tt b/railties/lib/generators/test_unit/plugin/templates/%file_name%_test.rb.tt index 3e0bc29d3a..3e0bc29d3a 100644 --- a/railties/lib/generators/test_unit/plugin/templates/test/%file_name%_test.rb.tt +++ b/railties/lib/generators/test_unit/plugin/templates/%file_name%_test.rb.tt diff --git a/railties/lib/generators/test_unit/plugin/templates/test/test_helper.rb b/railties/lib/generators/test_unit/plugin/templates/test_helper.rb index cf148b8b47..cf148b8b47 100644 --- a/railties/lib/generators/test_unit/plugin/templates/test/test_helper.rb +++ b/railties/lib/generators/test_unit/plugin/templates/test_helper.rb |