MerbのGeneratorは、merb-genというコマンドに集約されています。 Railsではscript/{generate|destroy}を使いますが、独立したコマンドになっているので、 MERB_ROOT以外の場所でも利用可能です。

さて、Merbでも、RailsのようにGeneratorを独自に作る事が出来るのですが、 そのためにはGEM_ROOTにGeneratorsというファイルを作り、 以下のように自分をGeneratorとして登録するコードを書きます。

   1  scope 'merb-gen' do
   2    dir = File.join(File.dirname(__FILE__), 'lib', 'generators/')
   3    Merb.add_generators dir + 'mailer_generator'
   4  end

MerbのGeneratorは、より汎用的なGeneratorを作る仕組みである、 templater を使って実装されています。 そのため、Merb用のGeneratorを作る場合は、上記ファイルのscopeに merb-genを指定する必要があります。

Railsの場合は、foo_generater のようにGem名のサフィックスでGenerator を提供するかどうか判別していましたが、 こっちのほうがもっと賢いやり方だと思います。

posted by Png genki on Tue 13 Jan 2009 at 23:30

$EDITORで~/.zshrcを開いて

   1  alias mi='PATH=./bin:$PATH merb -i'
   2  alias mg='PATH=./bin:$PATH merb-gen'

の2行を追加すると、 thor merb:gems:install環境でもそうじゃない環境でも、所望のコマンドが実行されて便利です。

posted by Png genki on Tue 13 Jan 2009 at 17:26

Merbをコンソールから操作する時には、merb -iコマンドを実行するのですが、 アプリケーションコードの変更を検出すると、自動的にirbがリロードされてしまい、ヒストリーが消えてしまうので、若干不便さを感じていました。

そんな時は、 irb-history があなたのMerbライフを強力にサポートしてくれます(Thanks maiha!)

まずはおもむろに

   1  % sudo gem install irb-history

つづいて、~/.irbrc に以下の行を追加します。

   1  require 'rubygems'
   2  require 'irb/history'
   3  IRB::History.start_client

これでOK。あとは普通にmerb -iを使っていれば、リロードされても ヒストリーが消えません。

posted by Png genki on Tue 13 Jan 2009 at 16:58

Railsでいう所のrecognize_pathに相当する事をMerbでやる場合、 以下のようにすると良いようです。

   1  Merb::Router.match(Merb::Request.new('REQUEST_PATH' => "/", 'REQUEST_METHOD' => 'GET'))
   2  #=> [29, {:action=>"index", :controller=>"top"}]

必要に応じて'QUERY_STRING'なども追加します。

posted by Png genki on Tue 13 Jan 2009 at 01:52
Contents
Merb用Generatorの作り方
Merbistのためのお勧めalias
irb-historyとmerb -i (通称mi)の相性が素晴らしい
MerbでPATHからパラメータを取得する方法
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ