summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--numeric.c21
2 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 3e9f449e8e..98622b5933 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Tue Nov 13 13:58:51 2007 Tanaka Akira <akr@fsij.org>
+
+ * numeric.c (numeric.c): Integer#ord implemented. [ruby-dev:32206]
+
Tue Nov 13 02:57:04 2007 URABE Shyouhei <shyouhei@ice.uec.ac.jp>
* numeric.c (flo_divmod): round to the nearest integer.
diff --git a/numeric.c b/numeric.c
index 93f569fd40..38a99f8283 100644
--- a/numeric.c
+++ b/numeric.c
@@ -1807,6 +1807,26 @@ int_chr(num)
return rb_str_new(&c, 1);
}
+/*
+ * call-seq:
+ * int.ord => int
+ *
+ * Returns the int itself.
+ *
+ * ?a.ord #=> 97
+ *
+ * This method is intended for compatibility to
+ * character constant in Ruby 1.9.
+ * For example, ?a.ord returns 97 both in 1.8 and 1.9.
+ */
+
+static VALUE
+int_ord(num)
+ VALUE num;
+{
+ return num;
+}
+
/********************************************************************
*
* Document-class: Fixnum
@@ -2924,6 +2944,7 @@ Init_Numeric()
rb_define_method(rb_cInteger, "succ", int_succ, 0);
rb_define_method(rb_cInteger, "next", int_succ, 0);
rb_define_method(rb_cInteger, "chr", int_chr, 0);
+ rb_define_method(rb_cInteger, "ord", int_ord, 0);
rb_define_method(rb_cInteger, "to_i", int_to_i, 0);
rb_define_method(rb_cInteger, "to_int", int_to_i, 0);
rb_define_method(rb_cInteger, "floor", int_to_i, 0);