OSDN Git Service

Revert r6104 "Merged r6098 from trunk."
[redminele/redmine.git] / lib / generators / redmine_plugin_controller / redmine_plugin_controller_generator.rb
index 533d65c..7f3f3f6 100644 (file)
@@ -6,6 +6,7 @@ class RedminePluginControllerGenerator < ControllerGenerator
   
   def initialize(runtime_args, runtime_options = {})
     runtime_args = runtime_args.dup
+    usage if runtime_args.empty?
     @plugin_name = "redmine_" + runtime_args.shift.underscore
     @plugin_pretty_name = plugin_name.titleize
     @plugin_path = "vendor/plugins/#{plugin_name}"
@@ -15,4 +16,40 @@ class RedminePluginControllerGenerator < ControllerGenerator
   def destination_root
     File.join(RAILS_ROOT, plugin_path)
   end
+  
+  def manifest
+    record do |m|
+      # Check for class naming collisions.
+      m.class_collisions class_path, "#{class_name}Controller", "#{class_name}ControllerTest", "#{class_name}Helper"
+
+      # Controller, helper, views, and test directories.
+      m.directory File.join('app/controllers', class_path)
+      m.directory File.join('app/helpers', class_path)
+      m.directory File.join('app/views', class_path, file_name)
+      m.directory File.join('test/functional', class_path)
+
+      # Controller class, functional test, and helper class.
+      m.template 'controller.rb.erb',
+                  File.join('app/controllers',
+                            class_path,
+                            "#{file_name}_controller.rb")
+
+      m.template 'functional_test.rb.erb',
+                  File.join('test/functional',
+                            class_path,
+                            "#{file_name}_controller_test.rb")
+
+      m.template 'helper.rb.erb',
+                  File.join('app/helpers',
+                            class_path,
+                            "#{file_name}_helper.rb")
+
+      # View template for each action.
+      actions.each do |action|
+        path = File.join('app/views', class_path, file_name, "#{action}.html.erb")
+        m.template 'view.html.erb', path,
+          :assigns => { :action => action, :path => path }
+      end
+    end
+  end
 end