summaryrefslogtreecommitdiff
path: root/object.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-26 08:27:15 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1998-02-26 08:27:15 +0000
commit48943ec3ae3ad53e7dd2fc88a5faef5352658c4f (patch)
tree408fe56246ded0166ec4f8f205f152c20e2bbb7f /object.c
parentd516dedc9888628cb58f16e70cbf4acdb2048458 (diff)
1.1b8_00?
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@94 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'object.c')
-rw-r--r--object.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/object.c b/object.c
index fe910d6441..9be43985e5 100644
--- a/object.c
+++ b/object.c
@@ -230,18 +230,6 @@ obj_is_kind_of(obj, c)
case T_CLASS:
break;
- case T_NIL:
- if (NIL_P(obj)) return TRUE;
- return FALSE;
-
- case T_FALSE:
- if (obj) return FALSE;
- return TRUE;
-
- case T_TRUE:
- if (obj) return TRUE;
- return FALSE;
-
default:
TypeError("class or module required");
}
@@ -262,6 +250,13 @@ obj_dummy(obj)
}
static VALUE
+nil_to_i(obj)
+ VALUE obj;
+{
+ return INT2FIX(0);
+}
+
+static VALUE
nil_to_s(obj)
VALUE obj;
{
@@ -322,6 +317,13 @@ true_to_s(obj)
}
static VALUE
+true_to_i(obj)
+ VALUE obj;
+{
+ return INT2FIX(1);
+}
+
+static VALUE
true_type(obj)
VALUE obj;
{
@@ -336,6 +338,13 @@ false_to_s(obj)
}
static VALUE
+false_to_i(obj)
+ VALUE obj;
+{
+ return INT2FIX(0);
+}
+
+static VALUE
false_type(obj)
VALUE obj;
{
@@ -874,6 +883,7 @@ Init_Object()
cNilClass = rb_define_class("NilClass", cObject);
rb_define_method(cNilClass, "type", nil_type, 0);
+ rb_define_method(cNilClass, "to_i", nil_to_i, 0);
rb_define_method(cNilClass, "to_s", nil_to_s, 0);
rb_define_method(cNilClass, "to_a", nil_to_a, 0);
rb_define_method(cNilClass, "inspect", nil_inspect, 0);
@@ -931,12 +941,14 @@ Init_Object()
cTrueClass = rb_define_class("TrueClass", cObject);
rb_define_method(cTrueClass, "to_s", true_to_s, 0);
+ rb_define_method(cTrueClass, "to_i", true_to_i, 0);
rb_define_method(cTrueClass, "type", true_type, 0);
rb_undef_method(CLASS_OF(cTrueClass), "new");
rb_define_global_const("TRUE", TRUE);
cFalseClass = rb_define_class("FalseClass", cObject);
rb_define_method(cFalseClass, "to_s", false_to_s, 0);
+ rb_define_method(cFalseClass, "to_i", false_to_i, 0);
rb_define_method(cFalseClass, "type", false_type, 0);
rb_undef_method(CLASS_OF(cFalseClass), "new");
rb_define_global_const("FALSE", FALSE);