aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/generators
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-07-15 11:33:36 +0200
committerJosé Valim <jose.valim@gmail.com>2009-07-15 11:33:36 +0200
commit0702e04e0d671227259f71f614adfe3f35f88b48 (patch)
tree9f3c34075fbb4ed4c227f66fd3168de86f8ab1f4 /railties/lib/generators
parenta06c825b464758a0c22f8b089a596e46f1bba5cb (diff)
downloadrails-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')
-rw-r--r--railties/lib/generators/base.rb8
-rw-r--r--railties/lib/generators/rails/generator/generator_generator.rb21
-rw-r--r--railties/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt (renamed from railties/lib/generators/rails/plugin/templates/lib/generators/%file_name%_generator.rb.tt)0
-rw-r--r--railties/lib/generators/rails/generator/templates/USAGE8
-rw-r--r--railties/lib/generators/rails/generator/templates/USAGE.tt (renamed from railties/lib/generators/rails/plugin/templates/lib/generators/USAGE.tt)0
-rw-r--r--railties/lib/generators/rails/generator/templates/generator.rb5
-rw-r--r--railties/lib/generators/rails/generator/templates/templates/.empty_directory (renamed from railties/lib/generators/rails/plugin/templates/lib/generators/templates/.empty_directory)0
-rw-r--r--railties/lib/generators/rails/plugin/plugin_generator.rb20
-rw-r--r--railties/lib/generators/test_unit/plugin/plugin_generator.rb2
-rw-r--r--railties/lib/generators/test_unit/plugin/templates/%file_name%_test.rb.tt (renamed from railties/lib/generators/test_unit/plugin/templates/test/%file_name%_test.rb.tt)0
-rw-r--r--railties/lib/generators/test_unit/plugin/templates/test_helper.rb (renamed from railties/lib/generators/test_unit/plugin/templates/test/test_helper.rb)0
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