End of Life Ruby 3.1 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
Module#public_method_defined?
mod.public_method_defined?(symbol, inherit=true) → true or false
mod.public_method_defined?(string, inherit=true) → true or false
vm_method.c
View on GitHub ↗
static VALUE
rb_mod_public_method_defined(int argc, VALUE *argv, VALUE mod)
{
return check_definition(mod, argc, argv, METHOD_VISI_PUBLIC);
}
Returns true if the named public method is defined by mod. If inherit is set, the lookup will also search mod’s ancestors. String arguments are converted to symbols.
Example
module A def method1() end end class B protected def method2() end end class C < B include A def method3() end end A.method_defined? :method1 #=> true C.public_method_defined? "method1" #=> true C.public_method_defined? "method1", true #=> true C.public_method_defined? "method1", false #=> true C.public_method_defined? "method2" #=> false C.method_defined? "method2" #=> true
See also
#public_instance_methods
#refine
#public_instance_method
#remove_class_variable
also in
4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.0