void Init_Range(void) { #undef rb_intern #define rb_intern(str) rb_intern_const(str) id_cmp = rb_intern("<=>"); id_succ = rb_intern("succ"); id_beg = rb_intern("begin"); id_end = rb_intern("end"); id_excl = rb_intern("excl"); id_integer_p = rb_intern("integer?"); id_div = rb_intern("div"); rb_cRange = rb_struct_define_without_accessor( "Range", rb_cObject, range_alloc, "begin", "end", "excl", NULL); rb_include_module(rb_cRange, rb_mEnumerable); rb_marshal_define_compat(rb_cRange, rb_cObject, range_dumper, range_loader); rb_define_method(rb_cRange, "initialize", range_initialize, -1); rb_define_method(rb_cRange, "initialize_copy", range_initialize_copy, 1); rb_define_method(rb_cRange, "==", range_eq, 1); rb_define_method(rb_cRange, "===", range_eqq, 1); rb_define_method(rb_cRange, "eql?", range_eql, 1); rb_define_method(rb_cRange, "hash", range_hash, 0); rb_define_method(rb_cRange, "each", range_each, 0); rb_define_method(rb_cRange, "step", range_step, -1); rb_define_method(rb_cRange, "bsearch", range_bsearch, 0); rb_define_method(rb_cRange, "begin", range_begin, 0); rb_define_method(rb_cRange, "end", range_end, 0); rb_define_method(rb_cRange, "first", range_first, -1); rb_define_method(rb_cRange, "last", range_last, -1); rb_define_method(rb_cRange, "min", range_min, -1); rb_define_method(rb_cRange, "max", range_max, -1); rb_define_method(rb_cRange, "size", range_size, 0); rb_define_method(rb_cRange, "to_s", range_to_s, 0); rb_define_method(rb_cRange, "inspect", range_inspect, 0); rb_define_method(rb_cRange, "exclude_end?", range_exclude_end_p, 0); rb_define_method(rb_cRange, "member?", range_include, 1); rb_define_method(rb_cRange, "include?", range_include, 1); rb_define_method(rb_cRange, "cover?", range_cover, 1); }
void Init_Range(void) { rb_cRange = rb_struct_define_without_accessor( "Range", rb_cObject, range_alloc, "begin", "end", "excl", NULL); rb_include_module(rb_cRange, rb_mEnumerable); //rb_marshal_define_compat(rb_cRange, rb_cObject, range_dumper, range_loader); rb_objc_define_method(rb_cRange, "initialize", range_initialize, -1); rb_objc_define_method(rb_cRange, "initialize_copy", range_initialize_copy, 1); rb_objc_define_method(rb_cRange, "==", range_eq, 1); rb_objc_define_method(rb_cRange, "===", range_eqq, 1); rb_objc_define_method(rb_cRange, "eql?", range_eql, 1); rb_objc_define_method(rb_cRange, "hash", range_hash, 0); rb_objc_define_method(rb_cRange, "each", range_each, 0); rb_objc_define_method(rb_cRange, "step", range_step, -1); rb_objc_define_method(rb_cRange, "begin", range_begin, 0); rb_objc_define_method(rb_cRange, "end", range_end, 0); rb_objc_define_method(rb_cRange, "first", range_first, -1); rb_objc_define_method(rb_cRange, "last", range_last, -1); rb_objc_define_method(rb_cRange, "min", range_min, 0); rb_objc_define_method(rb_cRange, "max", range_max, 0); rb_objc_define_method(rb_cRange, "to_s", range_to_s, 0); rb_objc_define_method(rb_cRange, "inspect", range_inspect, 0); rb_objc_define_method(rb_cRange, "exclude_end?", range_exclude_end_p, 0); rb_objc_define_method(rb_cRange, "member?", range_include, 1); rb_objc_define_method(rb_cRange, "include?", range_include, 1); rb_objc_define_method(rb_cRange, "cover?", range_cover, 1); // NOTE: This is a MacRuby specific extension. rb_objc_define_method(rb_cRange, "relative_to", range_relative_to, 1); selUpto = sel_registerName("upto:"); selBeg = sel_registerName("begin"); selEnd = sel_registerName("end"); selExcludeEnd = sel_registerName("exclude_end?"); selInclude = sel_registerName("include?:"); }