diff --git a/hooks/lib/generators/redmine_plugin/USAGE b/hooks/lib/generators/redmine_plugin/USAGE new file mode 100644 index 000000000..65a45d163 --- /dev/null +++ b/hooks/lib/generators/redmine_plugin/USAGE @@ -0,0 +1,18 @@ +Description: + The plugin generator creates stubs for a new Redmine plugin. + +Example: + ./script/generate redmine_plugin meetings + create vendor/plugins/redmine_meetings/app/controllers + create vendor/plugins/redmine_meetings/app/helpers + create vendor/plugins/redmine_meetings/app/models + create vendor/plugins/redmine_meetings/app/views + create vendor/plugins/redmine_meetings/db/migrate + create vendor/plugins/redmine_meetings/lib/tasks + create vendor/plugins/redmine_meetings/assets/images + create vendor/plugins/redmine_meetings/assets/javascripts + create vendor/plugins/redmine_meetings/assets/stylesheets + create vendor/plugins/redmine_meetings/lang + create vendor/plugins/redmine_meetings/README + create vendor/plugins/redmine_meetings/init.rb + create vendor/plugins/redmine_meetings/lang/en.yml diff --git a/hooks/lib/generators/redmine_plugin/redmine_plugin_generator.rb b/hooks/lib/generators/redmine_plugin/redmine_plugin_generator.rb new file mode 100644 index 000000000..f3614aeb4 --- /dev/null +++ b/hooks/lib/generators/redmine_plugin/redmine_plugin_generator.rb @@ -0,0 +1,45 @@ +# redMine - project management software +# Copyright (C) 2006-2008 Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +class RedminePluginGenerator < Rails::Generator::NamedBase + attr_reader :plugin_path, :plugin_name + + def initialize(runtime_args, runtime_options = {}) + super + @plugin_name = "redmine_#{file_name.underscore}" + @plugin_path = "vendor/plugins/#{plugin_name}" + end + + def manifest + record do |m| + m.directory "#{plugin_path}/app/controllers" + m.directory "#{plugin_path}/app/helpers" + m.directory "#{plugin_path}/app/models" + m.directory "#{plugin_path}/app/views" + m.directory "#{plugin_path}/db/migrate" + m.directory "#{plugin_path}/lib/tasks" + m.directory "#{plugin_path}/assets/images" + m.directory "#{plugin_path}/assets/javascripts" + m.directory "#{plugin_path}/assets/stylesheets" + m.directory "#{plugin_path}/lang" + + m.template 'README', "#{plugin_path}/README" + m.template 'init.rb', "#{plugin_path}/init.rb" + m.template 'en.yml', "#{plugin_path}/lang/en.yml" + end + end +end diff --git a/hooks/lib/generators/redmine_plugin/templates/README b/hooks/lib/generators/redmine_plugin/templates/README new file mode 100644 index 000000000..7a31a890e --- /dev/null +++ b/hooks/lib/generators/redmine_plugin/templates/README @@ -0,0 +1,3 @@ += <%= file_name %> + +Description goes here diff --git a/hooks/lib/generators/redmine_plugin/templates/en.yml b/hooks/lib/generators/redmine_plugin/templates/en.yml new file mode 100644 index 000000000..e338591ef --- /dev/null +++ b/hooks/lib/generators/redmine_plugin/templates/en.yml @@ -0,0 +1,2 @@ +# English strings go here +my_label: "My label" diff --git a/hooks/lib/generators/redmine_plugin/templates/init.rb b/hooks/lib/generators/redmine_plugin/templates/init.rb new file mode 100644 index 000000000..90c45d5e1 --- /dev/null +++ b/hooks/lib/generators/redmine_plugin/templates/init.rb @@ -0,0 +1,8 @@ +require 'redmine' + +Redmine::Plugin.register :<%= plugin_name %> do + name 'Example plugin' + author 'Author name' + description 'This is a plugin for Redmine' + version '0.0.1' +end