Actions
プラグインをgem化する¶
r2904 よりRedmineはgemでインストールしたプラグインを使えるようになりました。
プラグインをgemとしてインストールすることにより1台のサーバに複数のredmineを構築している場合でもそれぞれにプラグインを入れる必要がありません。また、プラグインのバージョンアップも非常に楽です。
gemでインストールしたプラグインをredmineにロードするためにはenvironment.rbに以下のように記述します。
Rails::Initializer.run do |config|
...
config.gem 'プラグイン名'
end
ではプラグインをgemに変換する方法です。jewelerというツールを使ってgemを作成する方法を説明します。
準備¶
以下の2つのツールがインストールされている必要があります。
- jeweler
- git
gitはリポジトリとしてgitを使っているかどうかにかかわらず必要です。jewelerが内部で使っているためです。
jewelerは以下のコマンドでインストールできます。
gem install jeweler
gitは本家 のサイトなどを参考にプラットフォームにあったものをインストールしてください。
Rakeファイルを作る¶
gem化したいプラグインのトップフォルダにRakefileがあれば、以下の記述を加えてください。無ければ新規にRakefileを作成してください。
#プラグイン名は適宜変えてください。
@plugin_name = 'code_review'
begin
require 'jeweler'
description = 'TODO'
author = 'TODO'
url = 'TODO'
redmine_init_content = File.read('init.rb')
if redmine_init_content.match(/description (.*$)/)
description = $1.gsub("'",'').gsub('"','')
end
if redmine_init_content.match(/author (.*$)/)
author = $1.gsub("'",'').gsub('"','')
end
if redmine_init_content.match(/[^ \t]*url ['"](.*)['"]/)
url = $1
end
if redmine_init_content.match(/[^ \t]*url ['"](.*)['"]/)
url = $1
end
Jeweler::Tasks.new do |s|
s.name = "#{@plugin_name}"
s.summary = "#{description}"
s.homepage = "#{url}"
s.description = "#{description}"
s.authors = ["#{author}"]
s.rubyforge_project = "#{@plugin_name}" # TODO
s.files = FileList[
"[A-Z]*",
"init.rb",
"rails/init.rb",
"{bin,generators,lib,test,app,assets,config,lang}/**/*",
'lib/jeweler/templates/.gitignore'
]
end
Jeweler::GemcutterTasks.new
Jeweler::RubyforgeTasks.new do |rubyforge|
rubyforge.doc_task = "rdoc"
end
rescue LoadError
puts "Jeweler, or one of its dependencies, is not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
end
task "create-version" do
# VERSION
File.open('VERSION','w') do |version_file|
redmine_init_content = File.read('init.rb')
if redmine_init_content.match(/^[ \t]*version (.*$)/)
version = $1.gsub("'",'').gsub('"','')
version_file.puts version
end
end
end
task "create_init_rb_for_gem" do
Dir.mkdir("rails") unless File.exist?("rails")
FileUtils.cp "init.rb", "rails/init.rb"
end
task "build-gem" => ["create-version", "create_init_rb_for_gem", "gemspec:generate", "gemspec:validate", "build"] do
end
そして以下のコマンドを実行してください。
rake build-gem
pkgというディレクトリの下にgemファイルができます。
また、gemをインストールする場合には
rake install
でインストールできます。
Updated by Haru Iida about 15 years ago · 1 revisions