1

いくつかのインスタンス メソッドのパラメーターを取得しようとしています。これを行う慣用的な 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 コンソールに入力しています。

4

1 に答える 1