class PluginGenerator < Rails::Generator::NamedBase attr_reader :plugin_path def initialize(runtime_args, runtime_options = {}) @with_generator = runtime_args.delete("--with-generator") super @plugin_path = "vendor/plugins/#{file_name}" end def manifest record do |m| m.directory "#{plugin_path}/lib" m.directory "#{plugin_path}/tasks" m.directory "#{plugin_path}/test" m.template 'README', "#{plugin_path}/README" m.template 'Rakefile', "#{plugin_path}/Rakefile" m.template 'init.rb', "#{plugin_path}/init.rb" m.template 'install.rb', "#{plugin_path}/install.rb" m.template 'plugin.rb', "#{plugin_path}/lib/#{file_name}.rb" m.template 'tasks.rake', "#{plugin_path}/tasks/#{file_name}_tasks.rake" m.template 'unit_test.rb', "#{plugin_path}/test/#{file_name}_test.rb" if @with_generator m.directory "#{plugin_path}/generators" m.directory "#{plugin_path}/generators/#{file_name}" m.directory "#{plugin_path}/generators/#{file_name}/templates" m.template 'generator.rb', "#{plugin_path}/generators/#{file_name}/#{file_name}_generator.rb" m.template 'USAGE', "#{plugin_path}/generators/#{file_name}/USAGE" end end end end