いくつかのインスタンス メソッドのパラメーターを取得しようとしています。これを行う慣用的な Ruby の方法は次のようになります。
class A
def test(id)
puts id
end
end
A.instance_method(:test).parameters
#=> [[:req, :id]]
このアプローチはほとんどの場合機能しますが、特定の方法で奇妙な結果が得られ、その理由がわかりません。
module Events
class Repository
def find(id)
#code
end
def delete(id)
#code
end
end
end
Events::Repository.instance_method(:find).parameters
#=> [[:req, :id]]
Events::Repository.instance_method(:delete).parameters
#=> [[:rest, :args], [:block, :block_for_method]]
これはRubyのバグですか?
注: 上記を Rails コンソールに入力しています。