diff .svn/pristine/ae/aece43382595a414583466234e19e24279ff6883.svn-base @ 909:cbb26bc654de redmine-1.3

Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author Chris Cannam
date Fri, 24 Feb 2012 19:09:32 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.svn/pristine/ae/aece43382595a414583466234e19e24279ff6883.svn-base	Fri Feb 24 19:09:32 2012 +0000
@@ -0,0 +1,55 @@
+require 'rails_generator/base'
+require 'rails_generator/generators/components/controller/controller_generator'
+
+class RedminePluginControllerGenerator < ControllerGenerator
+  attr_reader :plugin_path, :plugin_name, :plugin_pretty_name
+  
+  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}"
+    super(runtime_args, runtime_options)
+  end
+  
+  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