jruby on Merb : datamapper & merb-gen
前回の記事で、DatamapperのDBドライバがJRuby未対応と書きましたが、ようやく対応バージョンがリリースされたようです。
Merb + ActiveRecordで遊んで見るつもりでしたが、ORMをARにするといろいろと設定し直さないといけないところが出てくるので、せっかくリリースされたこともあり、Merb + Datamapperであそんでみたいと思います。
[1/15追記]申し訳ございません。現状インストールはできますが、実装が不十分なようで、(特にdatamapperとの連携部分)merb+datamapperでは動作しないことが判明しました。したがってJRubyで使うことはまだできません。大変申し訳ございません。
ただ、JRuby用Datamapperのドライバは現状開発中でgemのレポジトリにははいっていません。そのため、githubからダウンロードしてインストールする必要があります。
まずgit clone
$ git clone git://github.com/sam/do.git
できたディレクトリに移動して、ビルド&インストール。
$ cd do
$ jruby -S rake install
これでderby, sqlite3, postgres, mysql, hsqldb, そしてjdbc接続のドライバがインストールされます。
gem listすると、0.9.11のdo_xxxというgemがインストールされているはずです。
ということで、Merb+Datamapperを触っていきます。ブログアプリを作っていきたいと思います。
勉強しながら書いているので、間違いもあるかと思います。お気付きの場合、指摘していただけると幸いです。
Railsのrailsコマンドにあたるのが、merb-genです。これを使ってアプリケーションを生成します。
$ jruby -S merb-gen app blog
ところで、merb-genだけを入力するとオプションが表示されます。そのオプションの中に、アプリケーションのひな形を生成するオプション、app,coreとflat,very_flatがあると思います。それぞれで生成されるMerbアプリケーションの構成が異なります。
- app : 最も標準的なひな形。jQueryやdependencies.rbなど全部入り。
- core : railsのようなひな形。jQueryやdependencies.rb, database.ymlなど含まず
- flat : view,controller1つずつ、framework.rb(設定)の極小ひな形。
- very_flat : ファイル1つ(veryflat.rb)ですべての設定を行う超極小ひな形。
という構成になるようです。appでは、ORMやテストフレームワーク、テンプレートエンジンはデフォルト(それぞれ、Datamapper, RSpec, erb)を使用する設定でひな形が生成されます。これらをデフォルトから変更したい場合は、coreを使います。例えば、ORMをActiverecord,テンプレートエンジンをhamlにしたい場合は、
$ jruby -S merb-gen core test --orm=activerecord --template-engine=haml
というようになります。続きは次回。
2009/01/09 by Tomo Nozawa
« jruby on merb :... | メイン | (j)ruby on Merb :... »