Project

General

Profile

Actions

init.rb の作成

プラグインではまず、init.rb がロードされますので、ここに Redmine にプラグインとして追加してもらうためのコードを書きます。小さいプラグインならこの init.rb を書くだけでも作れてしまいます。

スケルトンで生成されたファイルの中身はこんな感じです。

Redmine::Plugin.register :redmine_standard do
  name 'Redmine Standard plugin'
  author 'Author name'
  description 'This is a plugin for Redmine'
  version '0.0.1'
  url 'http://example.com/path/to/plugin'
  author_url 'http://example.com/about'
end

しかし、 Ruby をずっと使ってきた人がこれを見ると一瞬、なんだこれと思うかもしれません。私は思いました。違和感を感じるのは Rails には Rails の書き方の流儀みたいなものがあるためで、よくある Ruby 風の書き方にちょっと直してみます。

Redmine::Plugin.register('redmine_standard') {
  name('Redmine Standard plugin')
  author('Author name')
  description('This is a plugin for Redmine')
  version('0.0.1')
  url('http://example.com/path/to/plugin')
  author_url('http://example.com/about')
}

これならばなんとなくやっていることが理解しやすいのではないでしょうか。しかし、Rails アプリでは次のようなスタイルで書かれていることが多いです。

  • 文字列ではなく、なるべくシンボルを使う
  • ブロックは括弧 {} ではなく、 do, end を使う
  • メソッドの括弧 () は省略する

特に最後の括弧の省略などは通常の ruby だとワーニングがでたりするので、すごく気持ち悪いです。しかし、郷に入れば郷に従えということで、プラグインを書くときにはこのスタイルに合わせた方がいいでしょう。(個人的には、括弧なしはやっぱりヤダ と思ってますが)

では、気を取り直してコードの説明に戻りましょう。
Redmine::Plugin.register というのがプラグイン追加のためのメソッドです。引数でプラグイン名を指定しています。名前はプラグイン生成時の指定で変わってきます。ブロック内でプラグインの各情報を記述します。

これらの情報はプラグインの管理ページで使用されます。スケルトンを生成した時点で何もしないプラグインができてますので、 Redmine を起動してみましょう。

それぞれのメソッドに書く情報は次のようになります。

メソッド 説明
name プラグインの表示名
author 作成者の名前
description プラグインの説明
version バージョン
url プラグインのホームページ
author_url 作成者のホームページ。名前をクリックしたときのリンク先になります。

これらの情報を自分のプラグインに合わせて、中身を替えていくことになります。 url や author_url はなければ省略してもかまいません。

このプラグインの基本情報を適当に書き直して、 Redmine を再起動してみてください。簡単なプラグインの完成です。
次回からこれに中身を付けていきましょう。


^ << >>

Updated by NAITOH Jun over 6 years ago · 4 revisions