Class: NameError::message
    Do not use.  This class is for internal use only.
  
Class Method Summary
Instance Method Summary
Class Method Details
._load(str)
[ GitHub ]# File 'error.c', line 2125
static VALUE
name_err_mesg_load(VALUE klass, VALUE str)
{
    return str;
}
  Instance Method Details
#==(obj2)
[ GitHub ]# File 'error.c', line 2030
static VALUE
name_err_mesg_equal(VALUE obj1, VALUE obj2)
{
    VALUE *ptr1, *ptr2;
    int i;
    if (obj1 == obj2) return Qtrue;
    if (rb_obj_class(obj2) != rb_cNameErrorMesg)
        return Qfalse;
    TypedData_Get_Struct(obj1, VALUE, &name_err_mesg_data_type, ptr1);
    TypedData_Get_Struct(obj2, VALUE, &name_err_mesg_data_type, ptr2);
    for (i=0; i<NAME_ERR_MESG_COUNT; i++) {
        if (!rb_equal(ptr1[i], ptr2[i]))
            return Qfalse;
    }
    return Qtrue;
}
  #_dump(limit)
[ GitHub ]# File 'error.c', line 2118
static VALUE
name_err_mesg_dump(VALUE obj, VALUE limit)
{
    return name_err_mesg_to_str(obj);
}
  #initialize_copy(obj2)
[ GitHub ]# File 'error.c', line 2015
static VALUE
name_err_mesg_init_copy(VALUE obj1, VALUE obj2)
{
    VALUE *ptr1, *ptr2;
    if (obj1 == obj2) return obj1;
    rb_obj_init_copy(obj1, obj2);
    TypedData_Get_Struct(obj1, VALUE, &name_err_mesg_data_type, ptr1);
    TypedData_Get_Struct(obj2, VALUE, &name_err_mesg_data_type, ptr2);
    MEMCPY(ptr1, ptr2, VALUE, NAME_ERR_MESG_COUNT);
    return obj1;
}
  #to_str
[ GitHub ]# File 'error.c', line 2061
static VALUE
name_err_mesg_to_str(VALUE obj)
{
    VALUE *ptr, mesg;
    TypedData_Get_Struct(obj, VALUE, &name_err_mesg_data_type, ptr);
    mesg = ptr[NAME_ERR_MESG__MESG];
    if (NIL_P(mesg)) return Qnil;
    else {
        struct RString s_str, d_str;
        VALUE c, s, d = 0, args[4];
        int state = 0, singleton = 0;
        rb_encoding *usascii = rb_usascii_encoding();
#define FAKE_CSTR(v, str) rb_setup_fake_str((v), (str), rb_strlen_lit(str), usascii)
        obj = ptr[NAME_ERR_MESG__RECV];
        switch (obj) {
          case Qnil:
            d = FAKE_CSTR(&d_str, "nil");
            break;
          case Qtrue:
            d = FAKE_CSTR(&d_str, "true");
            break;
          case Qfalse:
            d = FAKE_CSTR(&d_str, "false");
            break;
          default:
            d = rb_protect(name_err_mesg_receiver_name, obj, &state);
            if (state || NIL_OR_UNDEF_P(d))
                d = rb_protect(rb_inspect, obj, &state);
            if (state) {
                rb_set_errinfo(Qnil);
            }
            d = rb_check_string_type(d);
            if (NIL_P(d)) {
                d = rb_any_to_s(obj);
            }
            singleton = (RSTRING_LEN(d) > 0 && RSTRING_PTR(d)[0] == '#');
            break;
        }
        if (!singleton) {
            s = FAKE_CSTR(&s_str, ":");
            c = rb_class_name(CLASS_OF(obj));
        }
        else {
            c = s = FAKE_CSTR(&s_str, "");
        }
        args[0] = rb_obj_as_string(ptr[NAME_ERR_MESG__NAME]);
        args[1] = d;
        args[2] = s;
        args[3] = c;
        mesg = rb_str_format(4, args, mesg);
    }
    return mesg;
}