20th Thu
Merbの黒魔術 merb-action-args
MerbでORMとしてDataMapperを使っている場合は、
コントローラのアクションが、以下のように仮引数でパラメータを受け取るようなデザインになっています。
ruby>>
def show(id)
@user = User.get(id)
raise NotFound unless @user
display @user
end
<<--
このとき、Merbは、merb-action-argsというモジュールを使い、
仮引数idの名前をしらべ、Railsでいうところのparams[:id]の情報をもってきます。
merb-action-args
は、以下のようにUnboundMethodの仮引数を取得します。
ruby>>
def foo(id, bar); end
method(:foo).get_args
#=> [[[:id], [:bar]], []]
<<--
内部的には
ruby2ruby
を使っている模様。これはすごい。
See Also
posted by
genki on Thu 20 Nov 2008 at 17:13 with 0 comments