Class: Rational::compatible
Instance Method Summary collapse
-
#marshal_load(a) ⇒ Object
private
:nodoc:.
Instance Method Details
#marshal_load(a) ⇒ Object (private)
:nodoc:
1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 |
# File 'rational.c', line 1873 static VALUE nurat_marshal_load(VALUE self, VALUE a) { VALUE num, den; rb_check_frozen(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)); num = RARRAY_AREF(a, 0); den = RARRAY_AREF(a, 1); nurat_int_check(num); nurat_int_check(den); nurat_canonicalize(&num, &den); rb_ivar_set(self, id_i_num, num); rb_ivar_set(self, id_i_den, den); return self; } |