From f7acdd1afde3018a9f7c0a7dc3b6bd97a65670a2 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Fri, 5 Sep 2008 10:31:06 +0000 Subject: Merged hooks branch @ r1785 into trunk. git-svn-id: http://redmine.rubyforge.org/svn/trunk@1786 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/generators/redmine_plugin_model/USAGE | 5 +++++ .../redmine_plugin_model_generator.rb | 18 ++++++++++++++++++ .../redmine_plugin_model/templates/fixtures.yml | 11 +++++++++++ .../redmine_plugin_model/templates/migration.rb | 13 +++++++++++++ lib/generators/redmine_plugin_model/templates/model.rb | 2 ++ .../redmine_plugin_model/templates/unit_test.rb | 10 ++++++++++ 6 files changed, 59 insertions(+) create mode 100644 lib/generators/redmine_plugin_model/USAGE create mode 100644 lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb create mode 100644 lib/generators/redmine_plugin_model/templates/fixtures.yml create mode 100644 lib/generators/redmine_plugin_model/templates/migration.rb create mode 100644 lib/generators/redmine_plugin_model/templates/model.rb create mode 100644 lib/generators/redmine_plugin_model/templates/unit_test.rb (limited to 'lib/generators/redmine_plugin_model') diff --git a/lib/generators/redmine_plugin_model/USAGE b/lib/generators/redmine_plugin_model/USAGE new file mode 100644 index 000000000..0cb55a186 --- /dev/null +++ b/lib/generators/redmine_plugin_model/USAGE @@ -0,0 +1,5 @@ +Description: + Generates a plugin model. + +Examples: + ./script/generate redmine_plugin_model MyPlugin pool title:string question:text diff --git a/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb b/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb new file mode 100644 index 000000000..b712d9b07 --- /dev/null +++ b/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb @@ -0,0 +1,18 @@ +require 'rails_generator/base' +require 'rails_generator/generators/components/model/model_generator' + +class RedminePluginModelGenerator < ModelGenerator + attr_accessor :plugin_path, :plugin_name, :plugin_pretty_name + + def initialize(runtime_args, runtime_options = {}) + runtime_args = runtime_args.dup + @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 +end diff --git a/lib/generators/redmine_plugin_model/templates/fixtures.yml b/lib/generators/redmine_plugin_model/templates/fixtures.yml new file mode 100644 index 000000000..6be3c81be --- /dev/null +++ b/lib/generators/redmine_plugin_model/templates/fixtures.yml @@ -0,0 +1,11 @@ +# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html +one: + id: 1 +<% for attribute in attributes -%> + <%= attribute.name %>: <%= attribute.default %> +<% end -%> +two: + id: 2 +<% for attribute in attributes -%> + <%= attribute.name %>: <%= attribute.default %> +<% end -%> diff --git a/lib/generators/redmine_plugin_model/templates/migration.rb b/lib/generators/redmine_plugin_model/templates/migration.rb new file mode 100644 index 000000000..2a305a6a9 --- /dev/null +++ b/lib/generators/redmine_plugin_model/templates/migration.rb @@ -0,0 +1,13 @@ +class <%= migration_name %> < ActiveRecord::Migration + def self.up + create_table :<%= table_name %> do |t| +<% for attribute in attributes -%> + t.column :<%= attribute.name %>, :<%= attribute.type %> +<% end -%> + end + end + + def self.down + drop_table :<%= table_name %> + end +end diff --git a/lib/generators/redmine_plugin_model/templates/model.rb b/lib/generators/redmine_plugin_model/templates/model.rb new file mode 100644 index 000000000..8d4c89e91 --- /dev/null +++ b/lib/generators/redmine_plugin_model/templates/model.rb @@ -0,0 +1,2 @@ +class <%= class_name %> < ActiveRecord::Base +end diff --git a/lib/generators/redmine_plugin_model/templates/unit_test.rb b/lib/generators/redmine_plugin_model/templates/unit_test.rb new file mode 100644 index 000000000..cc8b2e591 --- /dev/null +++ b/lib/generators/redmine_plugin_model/templates/unit_test.rb @@ -0,0 +1,10 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class <%= class_name %>Test < Test::Unit::TestCase + fixtures :<%= table_name %> + + # Replace this with your real tests. + def test_truth + assert true + end +end -- cgit v1.2.3