[ruby-list:50275] 質問:定義済みメソッドの引数デフォルト値を取得する方法

From: Dice <tetradice@...>
Date: 2016-02-20 02:15:48 UTC
List: ruby-list #50275
Diceと申します。

1点、Rubyについて技術的に分からないことがありますため、質問させてください。

定義済みのメソッドの引数情報を取得したい場合には
Method#parameters メソッドを使用することになると思います。
このとき、引数の種類や名前は取得できますが、デフォルト値は取得できないと思います。

    m = Class.new{define_method(:m){|x, y=42, *other, &b|}}.instance_method(:m)
    m.parameters #=> [[:req, :x], [:opt, :y], [:rest, :other], [:block, :b]]

定義済みメソッドの、引数のデフォルト値(上記の「42」)を取得したいのですが
(1) pure rubyな機能か、もしくは既存のgemを使用して、これを実現する方法はありますでしょうか?
(2) 1が存在しない場合、拡張ライブラリを自作すれば、上記のことはおおむね可能になりそうでしょうか?

もし方法がありましたら、教えていただけますと幸いです。


--
Dice
tetradice@gmail.com

In This Thread

Prev Next