Maintenance Ruby 3.4 gets fixes, but no new features. Switch to Ruby 4.0 →
instance method
Module#protected_method_defined?
(::interned name, ?::boolish inherit) -> bool
mod.protected_method_defined?(symbol, inherit=true) → true or false
mod.protected_method_defined?(string, inherit=true) → true or false
vm_method.c
View on GitHub ↗
static VALUE
rb_mod_protected_method_defined(int argc, VALUE *argv, VALUE mod)
{
return check_definition(mod, argc, argv, METHOD_VISI_PROTECTED);
}
Returns true if the named protected method is defined 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.protected_method_defined? "method1" #=> false C.protected_method_defined? "method2" #=> true C.protected_method_defined? "method2", true #=> true C.protected_method_defined? "method2", false #=> false C.method_defined? "method2" #=> true
See also
#protected_instance_methods
#public
#protected
#public_class_method
also in
4.1 · 4.0 · 3.3 · 3.2 · 3.1 · 3.0