From: "duerst (Martin Dürst)" Date: 2012-11-26T09:54:15+09:00 Subject: [ruby-core:50141] [ruby-trunk - Bug #6832][Closed] Module#instance_method and Module#method_defined? act inconsistently w.r.t #respond_to_missing? Issue #6832 has been updated by duerst (Martin D��rst). Status changed from Assigned to Closed Closed on request of myronmarston. (I'm not totally sure, but I think only people in the Assignee list can close issues.) ---------------------------------------- Bug #6832: Module#instance_method and Module#method_defined? act inconsistently w.r.t #respond_to_missing? https://bugs.ruby-lang.org/issues/6832#change-33929 Author: myronmarston (Myron Marston) Status: Closed Priority: Normal Assignee: matz (Yukihiro Matsumoto) Category: Target version: 2.0.0 ruby -v: 1.9.3p194 It's awesome that #respond_to_missing? allows Object#method to work for messages handled by #method_missing. However, I was surprised to discover that Module#instance_method and Module#method_defined? don't similarly take #respond_to_missing? into account. It seems very inconsistent. Here's the behavior I'm seeing: https://gist.github.com/3255162 In this example, I would expect Foo#method_defined?(:foo_bar) to return true, and I would expect Foo#instance_method(:foo_bar) to return an UnboundMethod that, when bound to a Foo instance, would use #method_missing to perform the method. -- http://bugs.ruby-lang.org/