Mercurial > hg > soundsoftware-site
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