static VALUE string_to_c_strict(VALUE self) { VALUE a = string_to_c_internal(self); if (NIL_P(RARRAY_PTR(a)[0]) || RSTRING_LEN(RARRAY_PTR(a)[1]) > 0) { VALUE s = f_inspect(self); rb_raise(rb_eArgError, "invalid value for convert(): %s", StringValuePtr(s)); } return RARRAY_PTR(a)[0]; }
static VALUE string_to_r_strict(VALUE self) { VALUE a = string_to_r_internal(self); if (NIL_P(RARRAY_AT(a, 0)) || RSTRING_LEN(RARRAY_AT(a, 1)) > 0) { VALUE s = f_inspect(self); rb_raise(rb_eArgError, "invalid value for Rational: %s", StringValuePtr(s)); } return RARRAY_AT(a, 0); }