40invcmp_recursive(
VALUE x,
VALUE y,
int recursive)
42 if (recursive)
return Qnil;
60cmp_eq_recursive(
VALUE arg1,
VALUE arg2,
int recursive)
62 if (recursive)
return Qnil;
63 return rb_cmp(arg1, arg2);
79 if (x == y)
return Qtrue;
105 if (cmpint(x, y) > 0)
return Qtrue;
120 if (cmpint(x, y) >= 0)
return Qtrue;
135 if (cmpint(x, y) < 0)
return Qtrue;
150 if (cmpint(x, y) <= 0)
return Qtrue;
172 if (cmpint(x, min) < 0)
return Qfalse;
173 if (cmpint(x, max) > 0)
return Qfalse;
233 if (!
NIL_P(min) && cmpint(min, max) > 0)
goto arg_error;
236 else if (cmpint(min, max) > 0) {
243 if (c == 0)
return x;
244 if (c < 0)
return min;
248 if (c > 0)
return max;
297#define rb_intern(str) rb_intern_const(str)
VALUE rb_invcmp(VALUE x, VALUE y)
void Init_Comparable(void)
void rb_cmperr(VALUE x, VALUE y)
#define range(low, item, hi)
#define rb_cmpint(cmp, a, b)
VALUE rb_define_module(const char *)
void rb_raise(VALUE exc, const char *fmt,...)
const char * rb_builtin_class_name(VALUE x)
VALUE rb_obj_class(VALUE)
Equivalent to Object#class in Ruby.
VALUE rb_inspect(VALUE)
Convenient wrapper of Object::inspect.