pluginのインストールとか
Railsでは追加機能や、基本機能の拡張などを plugin という方法で行います。pluginは様々なところで公開していて、プロジェクトごとにインストールして使用します。pluginの管理には基本、script/plugin を使います。このコマンドでSVNを使ってネットから必要なプラグインを探したり、ダウンロードしてインストールしたりします。
簡単な使い方
利用可能なプラグインの一覧を表示。
$ ruby script/plugin list account_location http://dev.rubyonrails.com/svn/rails/plugins/account_location/ acts_as_list http://dev.rubyonrails.com/svn/rails/plugins/acts_as_list/ acts_as_nested_set http://dev.rubyonrails.com/svn/rails/plugins/acts_as_nested_set/ ・・・
一覧の右にあるように、デフォルトでは http://dev.rubyonrails.com/svn/rails/plugins/ に公開されているプラグインのみが対象となります。
プラグインのインストールは、install を使用します。scaffolding プラグインをインストールしてみます。
$ ruby script/plugin install scaffolding + ./MIT-LICENSE + ./README + ./Rakefile + ./init.rb + ./lib/scaffolding.rb ・・・
プラグインのリポジトリはいっぱいあって、discover -l でその一覧が確認できます。
$ ruby script/plugin discover -l http://www.agilewebdevelopment.com/plugins/ svn://rubyforge.org/var/svn/expressica/plugins/ http://soen.ca/svn/projects/rails/plugins/ http://technoweenie.stikipad.com/plugins/ ・・・
デフォルトに無いプラグインは、そのリポジトリを追加する必要があります(もしくはインストール時にフルパスで指定する)。 Railsによるアジャイル〜 rail2.0版 その1で出て来た pagination プラグインは、デフォルトにはなく、http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/ リポジトリにあります。これを追加します。
$ ruby script/plugin source http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/
sources で現在のリポジトリリストを確認できます。デフォルトの dev.rubyonrails.com と二つあります。
$ ruby script/plugin sources http://dev.rubyonrails.com/svn/rails/plugins/ http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/
ちなみに、discover を引数無しで実行すると、全てのリポジトリに対して追加するかどうか、Y/Nで答えて、Yならば追加されます。あまり多く追加しすぎるとプラグインの検索に時間がかかるので、必要なものだけにするのがよいかと思います。
また、間違えて登録してしまった場合は unsource リポジトリURL で、リポジトリをリストから除外することが出来ます。詳しくは、 script/plugin -h でヘルプが見れます。
さて、tools.assembla.com を追加したので、もう一度 list で確認してみます。
$ ruby script/plugin list ・・・ classic_pagination http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/classic_pagination/ ・・・ will_paginate http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/will_paginate/
先ほどより増えているのが分かります。その中にある、classic_pagination と will_paginate をインストールします。
$ ruby script/plugin install classic_pagination + ./CHANGELOG + ./README + ./Rakefile + ./init.rb + ./install.rb + ./lib/pagination.rb ・・・ $ ruby script/plugin install will_paginate + ./LICENSE + ./README + ./Rakefile + ./init.rb + ./lib/will_paginate/collection.rb ・・・
とりあえずこれで、scaffold を使う準備ができました。