class NoMatchingPatternKeyError

Public Class Methods

new(message=nil, matchee: nil, key: nil) → no_matching_pattern_key_error click to toggle source

Construct a new NoMatchingPatternKeyError exception with the given message, matchee and key.

static VALUE
no_matching_pattern_key_err_initialize(int argc, VALUE *argv, VALUE self)
{
    VALUE options;

    rb_call_super(rb_scan_args(argc, argv, "01:", NULL, &options), argv);

    if (!NIL_P(options)) {
        ID keywords[2];
        VALUE values[numberof(keywords)];
        int i;
        keywords[0] = id_matchee;
        keywords[1] = id_key;
        rb_get_kwargs(options, keywords, 0, numberof(values), values);
        for (i = 0; i < numberof(values); ++i) {
            if (values[i] != Qundef) {
                rb_ivar_set(self, keywords[i], values[i]);
            }
        }
    }

    return self;
}

Public Instance Methods

key → object click to toggle source

Return the key caused this NoMatchingPatternKeyError exception.

static VALUE
no_matching_pattern_key_err_key(VALUE self)
{
    VALUE key;

    key = rb_ivar_lookup(self, id_key, Qundef);
    if (key != Qundef) return key;
    rb_raise(rb_eArgError, "no key is available");
}
matchee → object click to toggle source

Return the matchee associated with this NoMatchingPatternKeyError exception.

static VALUE
no_matching_pattern_key_err_matchee(VALUE self)
{
    VALUE matchee;

    matchee = rb_ivar_lookup(self, id_matchee, Qundef);
    if (matchee != Qundef) return matchee;
    rb_raise(rb_eArgError, "no matchee is available");
}