summaryrefslogtreecommitdiff
path: root/range.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-07-26 13:37:13 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-07-26 13:37:13 +0000
commit6d9a4f510c6ad2eb5e9f50acfc600cfad7915586 (patch)
tree6ca306ff6b2b1cbbf3b904e106cfdb263d7d8214 /range.c
parentd13499173031809a316f1e5d25d9bb3e825e146c (diff)
* range.c (range_eqq): call_super() in === does not work well
since Enumerable#=== has different behavior. [ruby-dev:31296] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'range.c')
-rw-r--r--range.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/range.c b/range.c
index 15615a46bc..0d00c93cab 100644
--- a/range.c
+++ b/range.c
@@ -629,8 +629,6 @@ range_inspect(VALUE range)
/*
* call-seq:
* rng === obj => true or false
- * rng.member?(val) => true or false
- * rng.include?(val) => true or false
*
* Returns <code>true</code> if <i>obj</i> is an element of
* <i>rng</i>, <code>false</code> otherwise. Conveniently,
@@ -649,6 +647,25 @@ range_inspect(VALUE range)
*/
static VALUE
+range_eqq(VALUE range, VALUE val)
+{
+ return rb_funcall(range, rb_intern("include?"), 1, val);
+}
+
+
+/*
+ * call-seq:
+ * rng.member?(val) => true or false
+ * rng.include?(val) => true or false
+ *
+ * Returns <code>true</code> if <i>obj</i> is an element of
+ * <i>rng</i>, <code>false</code> otherwise.
+ *
+ * ("a".."z").include?("g") # => true
+ * ("a".."z").include?("A") # => false
+ */
+
+static VALUE
range_include(VALUE range, VALUE val)
{
VALUE beg = rb_ivar_get(range, id_beg);
@@ -769,7 +786,7 @@ Init_Range(void)
rb_include_module(rb_cRange, rb_mEnumerable);
rb_define_method(rb_cRange, "initialize", range_initialize, -1);
rb_define_method(rb_cRange, "==", range_eq, 1);
- rb_define_method(rb_cRange, "===", range_include, 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);