Class: Rational::compatible

Inherits:
Object show all
Defined in:
rational.c

Instance Method Summary collapse

Instance Method Details

#marshal_load(a) ⇒ Object (private)

:nodoc:


1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
# File 'rational.c', line 1677

static VALUE
nurat_marshal_load(VALUE self, VALUE a)
{
    rb_check_frozen(self);
    rb_check_trusted(self);

    Check_Type(a, T_ARRAY);
    if (RARRAY_LEN(a) != 2)
	rb_raise(rb_eArgError, "marshaled rational must have an array whose length is 2 but %ld", RARRAY_LEN(a));
    if (f_zero_p(RARRAY_AREF(a, 1)))
	rb_raise_zerodiv();

    rb_ivar_set(self, id_i_num, RARRAY_AREF(a, 0));
    rb_ivar_set(self, id_i_den, RARRAY_AREF(a, 1));

    return self;
}