1 class ExtensionGenerator < Rails::Generator::NamedBase
2 attr_reader :extension_path, :extension_file_name
4 def initialize(runtime_args, runtime_options = {})
6 @extension_file_name = "#{file_name}_extension"
7 @extension_path = "vendor/extensions/#{file_name}"
12 m.directory "#{extension_path}/app/controllers"
13 m.directory "#{extension_path}/app/helpers"
14 m.directory "#{extension_path}/app/models"
15 m.directory "#{extension_path}/app/views"
16 m.directory "#{extension_path}/db/migrate"
17 m.directory "#{extension_path}/lib/tasks"
18 m.directory "#{extension_path}/test/fixtures"
19 m.directory "#{extension_path}/test/functional"
20 m.directory "#{extension_path}/test/unit"
22 m.template 'README', "#{extension_path}/README"
23 m.template 'Rakefile', "#{extension_path}/Rakefile"
24 m.template 'extension.rb', "#{extension_path}/#{extension_file_name}.rb"
25 m.template 'tasks.rake', "#{extension_path}/lib/tasks/#{extension_file_name}_tasks.rake"
26 m.template 'test_helper.rb', "#{extension_path}/test/test_helper.rb"
27 m.template 'functional_test.rb', "#{extension_path}/test/functional/#{extension_file_name}_test.rb"
32 super.to_name.gsub(' ', '') + 'Extension'
36 class_name.to_name('Extension')