method_missing が定義されているクラスを知りたいです。オブジェクトで定義されています。
階層に沿ってどのクラスがそれをオーバーライドしているかを知るにはどうすればよいですか?
method_missing が定義されているクラスを知りたいです。オブジェクトで定義されています。
階層に沿ってどのクラスがそれをオーバーライドしているかを知るにはどうすればよいですか?
method を使用UnboundMethod#owner
して、メソッドが実装されている場所を確認できます。
class A
def method_missing(*args)
# do something
end
end
method = A.instance_method(:method_missing)
method.owner
# => A
注: メソッドがモジュールに実装されている場合 (後でクラス階層のどこかに混合されます)、owner
はこのモジュールを返します。