class NoMethodError

Raised when a method is called on a receiver which doesn’t have it defined and also fails to respond with method_missing.

"hello".to_ary

raises the exception:

NoMethodError: undefined method `to_ary' for "hello":String

Public Class Methods

Construct a NoMethodError exception for a method of the given name called with the given arguments. The name may be accessed using the name method on the resulting object, and the arguments using the args method.

If private argument were passed, it designates method was attempted to call in private context, and can be accessed with private_call? method.

receiver argument stores an object whose method was called.

static VALUE
nometh_err_initialize(int argc, VALUE *argv, VALUE self)
{
    int priv;
    VALUE args, options;
    argc = rb_scan_args(argc, argv, "*:", NULL, &options);
    priv = (argc > 3) && (--argc, RTEST(argv[argc]));
    args = (argc > 2) ? argv[--argc] : Qnil;
    if (!NIL_P(options)) argv[argc++] = options;
    rb_call_super_kw(argc, argv, RB_PASS_CALLED_KEYWORDS);
    return nometh_err_init_attr(self, args, priv);
}

Public Instance Methods

Return the arguments passed in as the third parameter to the constructor.

static VALUE
nometh_err_args(VALUE self)
{
    return rb_attr_get(self, id_args);
}

Return true if the caused method was called as private.

static VALUE
nometh_err_private_call_p(VALUE self)
{
    return rb_attr_get(self, id_private_call_p);
}