Method_defined? doesn't see module methods?

module M
def self.howdy
“hello”
end
end
p M.method_defined? :howdy #=> false

What question should I ask in order to get “true”? Thx - m.

Alle Sunday 27 January 2008, matt neuburg ha scritto:

module M
def self.howdy
“hello”
end
end
p M.method_defined? :howdy #=> false

What question should I ask in order to get “true”? Thx - m.

According to the ri documentation, method_defined? tells wether
instances of
the class, or of a class including the module, will respond to the given
method. In other words :

Cls.method_defined?(:a_method) == true

means that

Cls.new.respond_to?(:a_method) == true

To know whether the module has a module method, you can use respond_to?
on the
module:

M.respond_to?(:howdy)
=> true

I hope this helps

Stefano

Stefano C. [email protected] wrote:

To know whether the module has a module method, you can use respond_to? on the
module:

M.respond_to?(:howdy)
=> true

Excellent, thanks! m.