instance method
Object#respond_to?
(::interned name, ?::boolish include_all) -> bool
obj.respond_to?(symbol, include_all=false) → true or false
obj.respond_to?(string, include_all=false) → true or false
vm_method.c
View on GitHub ↗
static VALUE
obj_respond_to(int argc, VALUE *argv, VALUE obj)
{
VALUE mid, priv;
ID id;
rb_execution_context_t *ec = GET_EC();
rb_scan_args(argc, argv, "11", &mid, &priv);
if (!(id = rb_check_id(&mid))) {
VALUE ret = basic_obj_respond_to_missing(ec, CLASS_OF(obj), obj,
rb_to_symbol(mid), priv);
if (UNDEF_P(ret)) ret = Qfalse;
return ret;
}
return RBOOL(basic_obj_respond_to(ec, obj, id, !RTEST(priv)));
}
Returns true if obj responds to the given method. Private and protected methods are included in the search only if the optional second parameter evaluates to true.
If the method is not implemented, as Process.fork on Windows, File.lchmod on GNU/Linux, etc., false is returned.
If the method is not defined, respond_to_missing? method is called and the result is returned.
When the method name parameter is given as a string, the string is converted to a symbol.
See also
#remove_instance_variable
#respond_to_missing?
#public_send
#send
also in
4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0