II-15-7. RoRの機能拡張

RoRの機能を拡張するプラグインについて解説する。プラグインとは何か、プラグインの導入と利用方法について述べ、既存のプラグインとしてどのようなものがあるか、どのようにプラグインを利用すると効果的かといった話題について述べる。さらにサンプルプログラムでプラグインの利用例を示す。

【学習の要点】

* RoRは、プラグインを導入することでフレームワークに存在しない機能を追加することができる。

* プラグインの検索・インストールはscript/pluginスクリプトで行うことができる。

* プラグインはvender/pluginsディレクトリに保存される。

図II-15-7. プラグインの利用例

【解説】

1) プラグイン

プラグインは、RoRのフレームワークが提供する機能の拡張、もしくは機能の修正を行うためのプログラムである。プラグインを利用することにより、既存のコードを修正すること無く新たな機能を付け加えることができる。また、プラグインの提供者は独自に修正やアップデートをリリースすることができる。

2) プラグインのインストール

プラグインは、script/pluginスクリプトを利用して、Web上で公開されているリポジトリからインストールすることができる。スクリプトの詳細は以下のコマンドで確認できる。

ruby script/plugin -h

* プラグインのリスト

入手可能なプラグインのリストは以下のコマンドにより確認することができる。

ruby script/plugin list

* リポジトリの追加

以下のコマンドにより、リポジトリの追加を行うことができる。あらかじめリポジトリをsourceとして登録しておくことで、プラグイン名でのインストールが可能になる。

ruby script/plugin source [URL]

* プラグインのインストール

以下のコマンドにより、指定したプラグインをインストールすることができる。リポジトリがsourceとして登録されている場合はプラグイン名、登録されていない場合はURLを指定する。URLとして、subversionやgitのリポジトリを指定することができる。

ruby script/plugin install [プラグイン名 or プラグインのURL]

* インストールしたプラグインはvendor/pluginsディレクトリに配置される。

3) プラグインの例

現在公開されているプラグインに関する情報は、Webページ(http://wiki.rubyonrails.org/rails/pages/Plugins)などから入手できる。公開されているプラグインの例を以下にあげる。

* CSS Graphs(http://nubyonrails.com/pages/css_graphs)

グラフを作成するためのヘルパーを提供するプラグイン。

* Calendariffic(http://opensvn.csie.org/calendariffic/calendariffic/)

ポップアップカレンダーによる日付入力インタフェースの実現を容易にするプラグイン。

* TextAreaWithStatus

(http://text-area-with-status.googlecode.com/svn/tags/text_area_with_status)

文字数制限のあるテキスト入力欄の作成を容易にするプラグイン。

* Restful Authentication(git://github.com/technoweenie/restful-authentication.git)

ユーザ登録機能、およびユーザ認証機能の作成を容易にするプラグイン。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。