[macruby-changes] [3909] MacRuby/trunk/array.c
source_changes at macosforge.org
source_changes at macosforge.org
Sun Apr 4 19:47:42 PDT 2010
Revision: 3909
http://trac.macosforge.org/projects/ruby/changeset/3909
Author: lsansonetti at apple.com
Date: 2010-04-04 19:47:42 -0700 (Sun, 04 Apr 2010)
Log Message:
-----------
added conformant #to_a
Modified Paths:
--------------
MacRuby/trunk/array.c
Modified: MacRuby/trunk/array.c
===================================================================
--- MacRuby/trunk/array.c 2010-04-05 02:47:17 UTC (rev 3908)
+++ MacRuby/trunk/array.c 2010-04-05 02:47:42 UTC (rev 3909)
@@ -1991,6 +1991,25 @@
return rcv;
}
+/*
+ * call-seq:
+ * array.to_a -> array
+ *
+ * Returns _self_. If called on a subclass of Array, converts
+ * the receiver to an Array object.
+ */
+
+static VALUE
+rary_to_a(VALUE ary, SEL sel)
+{
+ if (rb_obj_class(ary) != rb_cRubyArray) {
+ VALUE dup = rb_ary_new();
+ rary_replace(dup, 0, ary);
+ return dup;
+ }
+ return ary;
+}
+
/*
* call-seq:
* array.clear -> array
@@ -3473,6 +3492,7 @@
rary_s_try_convert, 1);
rb_objc_define_method(rb_cRubyArray, "initialize", rary_initialize, -1);
rb_objc_define_method(rb_cRubyArray, "initialize_copy", rary_replace, 1);
+ rb_objc_define_method(rb_cRubyArray, "to_a", rary_to_a, 0);
rb_objc_define_method(rb_cRubyArray, "dup", rary_dup, 0);
rb_objc_define_method(rb_cRubyArray, "clone", rary_clone, 0);
rb_objc_define_method(rb_cRubyArray, "to_s", rary_inspect, 0);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100404/b86ae002/attachment.html>
More information about the macruby-changes
mailing list