« 意外と身近なphar - PHp ARchive | メイン | 2007年度ウノウラボ アフィリエイト成果ランキング »

Merbで Ruby on Rails の pluginを使用する
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは satoです。

最近何かと話題な Rubyでできた新しいwebフレームワーク Merbですが、Merbから railsのプラグインを使用する際に、必要なことをまとめてみました。Merbの詳細な説明やインストールは以下を参考にしました。

優しい Merb の育て方

Rails のプラグインを使用するには まず merb_has_rails_plugins を gem でインストールします

gem install merb_has_rails_plugins

次に ./config/dependencies.rb に 以下を加えます。

dependencies "merb_has_rails_plugins"

さらに ./plugin というディレクトリを作成し、そこに railsのプラグインを設置します。一応これだけで、多くのプラグインは動くようになるのですが、以下の場合には設定の変更かプラグイン自体の修正が必要です。

1) ActionController などを拡張する形のプラグインである

 ActionController::Base.module_eval や ActionController::AbstractRequest.module_eval などの形で actionコントローラなどを拡張する形のプラグインは 該当箇所を Merb::Controller.module_eval や Merb::Request.module_eval などに置き換える必要があります。

2) cookie や session を 扱うプラグインである

 Railsでは ActionController::Cookies を通して行いますが、 Merbでは Merb :: ControllerMixin::set_cookie などで行います。 sessionも同様です。

3) メールを扱う、またはプラグイン中でメールを送信する

 Rails では ActiveMailer を使用するのに対して、Merbでは Merb :: MailController/Mailer を使用します。

4) generate 系のプラグインである

 Merbは まだ 0.x の段階なので まだまだ、Rails互換の generate や それに代わる機能が足りない部分があります。

5) その他 ActiveSupport や ActiveRecord等を拡張したり使用するプラグイン

 Merbには 初期状態で ActiveSupport や ActiveRecordを使用しないため、dependenciesなどで使用するよう設定しないと、そのままの状態では使えません。

まだありそうですが、手元で使用しているプラグインは以上で動くようになりました。テストで Merb は Rails の平均3倍程度のパフォーマンスが出るので(データベースへのアクセスが増えるに従って差がなくなっていく)、Web画面はRallsで作成し、アクセスが多いAPIなどは Merbで開発するなどの使用方法も考えられると思います。

トラックバック

このエントリーのトラックバックURL:
http://www.unoh.net/mt32/mt-tb.cgi/1036

コメントを投稿


画像の中に見える文字を入力してください。