ruby-changes:4506
From: ko1@a...
Date: Mon, 14 Apr 2008 13:23:00 +0900 (JST)
Subject: [ruby-changes:4506] knu - Ruby:r15999 (ruby_1_8): * range.c (range_each, range_step): Return an enumerator if no
knu 2008-04-14 13:22:44 +0900 (Mon, 14 Apr 2008) New Revision: 15999 Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/NEWS branches/ruby_1_8/range.c branches/ruby_1_8/struct.c Log: * range.c (range_each, range_step): Return an enumerator if no block is given. * struct.c (rb_struct_each, rb_struct_each_pair): Ditto. http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/range.c?r1=15999&r2=15998&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=15999&r2=15998&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/struct.c?r1=15999&r2=15998&diff_format=u http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/NEWS?r1=15999&r2=15998&diff_format=u Index: ruby_1_8/NEWS =================================================================== --- ruby_1_8/NEWS (revision 15998) +++ ruby_1_8/NEWS (revision 15999) @@ -68,6 +68,11 @@ * Process.exec implemented. + * Range#each + * Range#step + + Return an enumerator if no block is given. + * Regexp.union accepts an array of patterns. * String#partition @@ -83,6 +88,11 @@ New exception class that causes Kernel#loop to stop iteration when raised. + * Struct#each + * Struct#each_pair + + Return an enumerator if no block is given. + * Symbol#to_proc implemented. * enumerator Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 15998) +++ ruby_1_8/ChangeLog (revision 15999) @@ -1,3 +1,10 @@ +Mon Apr 14 13:19:36 2008 Akinori MUSHA <knu@i...> + + * range.c (range_each, range_step): Return an enumerator if no + block is given. + + * struct.c (rb_struct_each, rb_struct_each_pair): Ditto. + Mon Apr 14 13:07:59 2008 Akinori MUSHA <knu@i...> * string.c (rb_str_partition, rb_str_rpartition, @@ -6,11 +13,6 @@ backported from 1.9. These methods are $KCODE aware unlike #index, #rindex and #include?. -Mon Apr 14 00:11:22 2008 Akinori MUSHA <knu@i...> - - * struct.c (rb_struct_each, rb_struct_each_pair): Return - an enumerator if no block is given. - Sun Apr 13 15:55:52 2008 Kazuhiro NISHIYAMA <zn@m...> * object.c (sym_to_proc): new method Symbol#to_proc; backported Index: ruby_1_8/range.c =================================================================== --- ruby_1_8/range.c (revision 15998) +++ ruby_1_8/range.c (revision 15999) @@ -310,6 +310,8 @@ VALUE b, e, step; long unit; + RETURN_ENUMERATOR(range, argc, argv); + b = rb_ivar_get(range, id_beg); e = rb_ivar_get(range, id_end); if (rb_scan_args(argc, argv, "01", &step) == 0) { @@ -411,6 +413,8 @@ { VALUE beg, end; + RETURN_ENUMERATOR(range, 0, 0); + beg = rb_ivar_get(range, id_beg); end = rb_ivar_get(range, id_end); Index: ruby_1_8/struct.c =================================================================== --- ruby_1_8/struct.c (revision 15998) +++ ruby_1_8/struct.c (revision 15999) @@ -431,6 +431,7 @@ { long i; + RETURN_ENUMERATOR(s, 0, 0); for (i=0; i<RSTRUCT(s)->len; i++) { rb_yield(RSTRUCT(s)->ptr[i]); } @@ -462,6 +463,7 @@ VALUE members; long i; + RETURN_ENUMERATOR(s, 0, 0); members = rb_struct_members(s); for (i=0; i<RSTRUCT(s)->len; i++) { rb_yield_values(2, rb_ary_entry(members, i), RSTRUCT(s)->ptr[i]); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/