1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-03-11 19:53:07 +00:00

Adds plugin controller and model generator.

git-svn-id: http://redmine.rubyforge.org/svn/branches/work@1726 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2008-08-10 14:57:05 +00:00
parent 74b942b34d
commit 2a04d6188b
13 changed files with 100 additions and 17 deletions

View File

@ -1,20 +1,3 @@
# 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, :plugin_pretty_name

View File

@ -0,0 +1,5 @@
Description:
Generates a plugin controller.
Example:
./script/generate redmine_plugin_controller MyPlugin Pools index show vote

View File

@ -0,0 +1,18 @@
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
@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

View File

@ -0,0 +1,7 @@
class <%= class_name %>Controller < ApplicationController
<% actions.each do |action| -%>
def <%= action %>
end
<% end -%>
end

View File

@ -0,0 +1,8 @@
require 'test_helper'
class <%= class_name %>ControllerTest < ActionController::TestCase
# Replace this with your real tests.
def test_truth
assert true
end
end

View File

@ -0,0 +1,2 @@
module <%= class_name %>Helper
end

View File

@ -0,0 +1 @@
<h2><%= class_name %>#<%= action %></h2>

View File

@ -0,0 +1,5 @@
Description:
Generates a plugin model.
Examples:
./script/generate redmine_plugin_model MyPlugin pool title:string question:text

View File

@ -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

View File

@ -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 -%>

View File

@ -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

View File

@ -0,0 +1,2 @@
class <%= class_name %> < ActiveRecord::Base
end

View File

@ -0,0 +1,10 @@
require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../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