プロジェクト

全般

プロフィール

GuideInitRb » 履歴 » バージョン 1

Mitsuyoshi Yoshida, 2011/06/25 23:29

1 1 Mitsuyoshi Yoshida
2
h1. init.rb の作成
3
4
プラグインではまず、init.rb がロードされますので、ここに Redmine にプラグインとして追加してもらうためのコードを書きます。小さいプラグインならこの init.rb を書くだけでも作れてしまいます。
5
6
スケルトンで生成されたファイルの中身はこんな感じです。
7
<pre><code class="ruby">
8
require 'redmine'
9
10
Redmine::Plugin.register :redmine_standard do
11
  name 'Redmine Standard plugin'
12
  author 'Author name'
13
  description 'This is a plugin for Redmine'
14
  version '0.0.1'
15
  url 'http://example.com/path/to/plugin'
16
  author_url 'http://example.com/about'
17
end
18
</code></pre>
19
20
1 行目は redmine 用のライブラリを呼び出しているところで、必ず書いていなければなりません。
21
22
3 行目からがプラグインを Redmine に追加するためのコードになります。しかし、 Ruby をずっと使ってきた人がこれを見ると一瞬、なんだこれと思うかもしれません。私は思いました。違和感を感じるのは Rails には Rails の書き方の流儀みたいなものためで、よくある Ruby 風の書き方にちょっと直してみます。
23
24
<pre><code class="ruby">
25
Redmine::Plugin.register('redmine_standard') {
26
  name('Redmine Standard plugin')
27
  author('Author name')
28
  description('This is a plugin for Redmine')
29
  version('0.0.1')
30
  url('http://example.com/path/to/plugin')
31
  author_url('http://example.com/about')
32
}
33
</code></pre>
34
35
これならばなんとなくやっていることが理解しやすいのではないでしょうか。しかし、Rails アプリでは次のようなスタイルで書かれていることが多いです。
36
* 文字列ではなく、なるべくシンボルを使う
37
* ブロックは括弧 {} ではなく、 do, end を使う
38
* メソッドの括弧 () は省略する
39
40
特に最後の括弧の省略などは通常の ruby だとワーニングがでたりするので、すごく気持ち悪いです。しかし、郷に入れば郷に従えということで、プラグインを書くときにはこのスタイルに合わせた方がいいでしょう。(個人的には、括弧なしはやっぱりヤダ と思ってますが)
41
42
では、気を取り直してコードの説明に戻りましょう。
43
Redmine::Plugin.register というのがプラグイン追加のためのメソッドです。引数でプラグイン名を指定しています。名前はプラグイン生成時の指定で変わってきます。ブロック内でプラグインの各情報を記述します。
44
45
これらの情報はプラグインの管理ページで使用されます。スケルトンを生成した時点で何もしないプラグインができてますので、 Redmine を起動してみましょう。
46
47
!init.png!
48
49
それぞれのメソッドに書く情報は次のようになります。
50
51
|_. メソッド  |_. 説明             |
52
| name        | プラグインの表示名 |
53
| author      | 作成者の名前	   |
54
| description | プラグインの説明   |
55
| version     | バージョン	   |
56
| url	      | プラグインのホームページ |
57
| author_url  | 作成者のホームページ。名前をクリックしたときのリンク先になります。 |
58
59
これらの情報を自分のプラグインに合わせて、中身を替えていくことになります。 url や author_url はなければ省略してもかまいません。
60
61
このプラグインの基本情報を適当に書き直して、 Redmine を再起動してみてください。簡単なプラグインの完成です。
62
次回からこれに中身を付けていきましょう。
63
64
---
65
66
| [[プラグイン開発ガイド|^]] | [[GuideSkeleton|<<]] | [[GuideModel|>>]] |