質問: 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 を取得したいです。これは、実現可能でしょうか?
回答: 丁度、質問投稿を見直していると、 accepted answer の下の方に、`Method#parameters` メソッドについての説明がありました。これを実際に実行してみると、 ``` method(:hoge).parameters # => [[:opt, :a], [:opt, :b]] ``` となったので、これが欲しかったメソッドの様子です。