aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/generators/rails/generator
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/generators/rails/generator')
-rw-r--r--railties/lib/generators/rails/generator/USAGE11
-rw-r--r--railties/lib/generators/rails/generator/generator_generator.rb25
-rw-r--r--railties/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt5
-rw-r--r--railties/lib/generators/rails/generator/templates/USAGE.tt8
-rw-r--r--railties/lib/generators/rails/generator/templates/templates/.empty_directory0
5 files changed, 49 insertions, 0 deletions
diff --git a/railties/lib/generators/rails/generator/USAGE b/railties/lib/generators/rails/generator/USAGE
new file mode 100644
index 0000000000..ca7d3f62d0
--- /dev/null
+++ b/railties/lib/generators/rails/generator/USAGE
@@ -0,0 +1,11 @@
+Description:
+ Stubs out a new generator at lib/generators. Pass the generator name, either
+ CamelCased or under_scored, as an argument.
+
+Example:
+ `./script/generate generator Awesome`
+
+ creates a standard awesome generator:
+ lib/generators/awesome/
+ lib/generators/awesome/awesome_generator.rb
+ lib/generators/awesome/templates/
diff --git a/railties/lib/generators/rails/generator/generator_generator.rb b/railties/lib/generators/rails/generator/generator_generator.rb
new file mode 100644
index 0000000000..2fc97b20d3
--- /dev/null
+++ b/railties/lib/generators/rails/generator/generator_generator.rb
@@ -0,0 +1,25 @@
+module Rails
+ module Generators
+ class GeneratorGenerator < NamedBase
+ check_class_collision :suffix => "Generator"
+
+ class_option :namespace, :type => :boolean, :default => true,
+ :desc => "Namespace generator under lib/generators/name"
+
+ def craete_generator_files
+ directory '.', generator_dir
+ end
+
+ protected
+
+ def generator_dir
+ if options[:namespace]
+ File.join("lib", "generators", file_name)
+ else
+ File.join("lib", "generators")
+ end
+ end
+
+ end
+ end
+end
diff --git a/railties/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt b/railties/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt
new file mode 100644
index 0000000000..675f00043f
--- /dev/null
+++ b/railties/lib/generators/rails/generator/templates/%file_name%_generator.rb.tt
@@ -0,0 +1,5 @@
+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/generator/templates/USAGE.tt b/railties/lib/generators/rails/generator/templates/USAGE.tt
new file mode 100644
index 0000000000..ea9f4f12cc
--- /dev/null
+++ b/railties/lib/generators/rails/generator/templates/USAGE.tt
@@ -0,0 +1,8 @@
+Description:
+ Explain the generator
+
+Example:
+ ./script/generate <%= file_name %> Thing
+
+ This will create:
+ what/will/it/create
diff --git a/railties/lib/generators/rails/generator/templates/templates/.empty_directory b/railties/lib/generators/rails/generator/templates/templates/.empty_directory
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/railties/lib/generators/rails/generator/templates/templates/.empty_directory