ruby のメソッドに対して、期待引数個数の range を取得したい
ruby の特定のメソッドが、期待する引数の個数を range で取得したいと考えました。
どういうことかというと、 ruby にはデフォルト引数があるので、例えば以下のメソッドでは 0~2 個の引数を指定できます。
def hoge(a=1, b=2)
p a; p b
end
この場合は、 0..2
を取得したいです。
本家で検索したところ、 arity
メソッドがそれらしかったのですが、arity
メソッドは、可変長パラメータを引数に取る場合には、「(-1)*(必須parameterの個数+1)」が帰ってくる様子です。実際上記hoge
メソッドに対して実行すると、-1
が返ってきます。
質問
- ruby で、対象のメソッドが、実際に何個の引数を取り得るかの range を取得したいです。これは、実現可能でしょうか?