lib/generators/extension/extension_generator.rb in radiant-0.6.4 vs lib/generators/extension/extension_generator.rb in radiant-0.6.5
- old
+ new
@@ -1,6 +1,8 @@
class ExtensionGenerator < Rails::Generator::NamedBase
+ default_options :with_test_unit => false
+
attr_reader :extension_path, :extension_file_name
def initialize(runtime_args, runtime_options = {})
super
@extension_file_name = "#{file_name}_extension"
@@ -13,26 +15,46 @@
m.directory "#{extension_path}/app/helpers"
m.directory "#{extension_path}/app/models"
m.directory "#{extension_path}/app/views"
m.directory "#{extension_path}/db/migrate"
m.directory "#{extension_path}/lib/tasks"
- m.directory "#{extension_path}/test/fixtures"
- m.directory "#{extension_path}/test/functional"
- m.directory "#{extension_path}/test/unit"
-
+
m.template 'README', "#{extension_path}/README"
- m.template 'Rakefile', "#{extension_path}/Rakefile"
m.template 'extension.rb', "#{extension_path}/#{extension_file_name}.rb"
m.template 'tasks.rake', "#{extension_path}/lib/tasks/#{extension_file_name}_tasks.rake"
- m.template 'test_helper.rb', "#{extension_path}/test/test_helper.rb"
- m.template 'functional_test.rb', "#{extension_path}/test/functional/#{extension_file_name}_test.rb"
+
+ if options[:with_test_unit]
+ m.directory "#{extension_path}/test/fixtures"
+ m.directory "#{extension_path}/test/functional"
+ m.directory "#{extension_path}/test/unit"
+
+ m.template 'Rakefile', "#{extension_path}/Rakefile"
+ m.template 'test_helper.rb', "#{extension_path}/test/test_helper.rb"
+ m.template 'functional_test.rb', "#{extension_path}/test/functional/#{extension_file_name}_test.rb"
+ else
+ m.directory "#{extension_path}/spec/controllers"
+ m.directory "#{extension_path}/spec/models"
+ m.directory "#{extension_path}/spec/views"
+ m.directory "#{extension_path}/spec/helpers"
+
+ m.template 'RSpecRakefile', "#{extension_path}/Rakefile"
+ m.template 'spec_helper.rb', "#{extension_path}/spec/spec_helper.rb"
+ m.file 'spec.opts', "#{extension_path}/spec/spec.opts"
+ end
end
end
def class_name
super.to_name.gsub(' ', '') + 'Extension'
end
def extension_name
class_name.to_name('Extension')
+ end
+
+ def add_options!(opt)
+ opt.separator ''
+ opt.separator 'Options:'
+ opt.on("--with-test-unit",
+ "Use Test::Unit for this extension instead of RSpec") { |v| options[:with_test_unit] = v }
end
end
\ No newline at end of file