1 class PluginGenerator
< Rails
::Generator::NamedBase
2 attr_reader
:plugin_path
4 def initialize(runtime_args
, runtime_options
= {})
5 @with_generator = runtime_args
.delete("--with-generator")
7 @plugin_path = "vendor/plugins/#{file_name}"
12 # Check for class naming collisions.
13 m
.class_collisions class_name
15 m
.directory
"#{plugin_path}/lib"
16 m
.directory
"#{plugin_path}/tasks"
17 m
.directory
"#{plugin_path}/test"
19 m
.template
'README', "#{plugin_path}/README"
20 m
.template
'MIT-LICENSE', "#{plugin_path}/MIT-LICENSE"
21 m
.template
'Rakefile', "#{plugin_path}/Rakefile"
22 m
.template
'init.rb', "#{plugin_path}/init.rb"
23 m
.template
'install.rb', "#{plugin_path}/install.rb"
24 m
.template
'uninstall.rb', "#{plugin_path}/uninstall.rb"
25 m
.template
'plugin.rb', "#{plugin_path}/lib/#{file_name}.rb"
26 m
.template
'tasks.rake', "#{plugin_path}/tasks/#{file_name}_tasks.rake"
27 m
.template
'unit_test.rb', "#{plugin_path}/test/#{file_name}_test.rb"
28 m
.template
'test_helper.rb', "#{plugin_path}/test/test_helper.rb"
30 m
.directory
"#{plugin_path}/generators"
31 m
.directory
"#{plugin_path}/generators/#{file_name}"
32 m
.directory
"#{plugin_path}/generators/#{file_name}/templates"
34 m
.template
'generator.rb', "#{plugin_path}/generators/#{file_name}/#{file_name}_generator.rb"
35 m
.template
'USAGE', "#{plugin_path}/generators/#{file_name}/USAGE"