ruby-changes:19214
From: sorah <ko1@a...>
Date: Sat, 9 Apr 2011 23:28:13 +0900 (JST)
Subject: [ruby-changes:19214] Ruby:r31253 (trunk): * ext/stringio/stringio.c (strio_each):
sorah 2011-04-09 23:28:06 +0900 (Sat, 09 Apr 2011) New Revision: 31253 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31253 Log: * ext/stringio/stringio.c (strio_each): Fix exception message and don't raise immediately if block is not given. Fixes [ruby-dev:43394]. * test/stringio/test_stringio.rb (test_each_line_limit_0): Fix test for above. Modified files: trunk/ChangeLog trunk/ext/stringio/stringio.c trunk/test/stringio/test_stringio.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 31252) +++ ChangeLog (revision 31253) @@ -1,3 +1,12 @@ +Sat Apr 9 23:22:27 2011 Shota Fukumori <sorah@t...> + + * ext/stringio/stringio.c (strio_each): + Fix exception message and don't raise immediately if block is not given. + Fixes [ruby-dev:43394]. + + * test/stringio/test_stringio.rb (test_each_line_limit_0): + Fix test for above. + Sat Apr 9 21:54:15 2011 Shota Fukumori <sorah@t...> * ext/stringio/stringio.c (strio_each, strio_readlines): Index: ext/stringio/stringio.c =================================================================== --- ext/stringio/stringio.c (revision 31252) +++ ext/stringio/stringio.c (revision 31253) @@ -1067,13 +1067,13 @@ struct StringIO *ptr = StringIO(self); VALUE line; + RETURN_ENUMERATOR(self, argc, argv); + if(argc > 0 && TYPE(argv[argc-1]) == T_FIXNUM && FIX2INT(argv[argc-1]) == 0) { - rb_raise(rb_eArgError, "invalid limit: 0 for readlines"); + rb_raise(rb_eArgError, "invalid limit: 0 for each_line"); } - RETURN_ENUMERATOR(self, argc, argv); - while (!NIL_P(line = strio_getline(argc, argv, readable(ptr)))) { rb_yield(line); } Index: test/stringio/test_stringio.rb =================================================================== --- test/stringio/test_stringio.rb (revision 31252) +++ test/stringio/test_stringio.rb (revision 31253) @@ -488,6 +488,7 @@ end def test_each_line_limit_0 - assert_raise(ArgumentError, "[ruby-dev:43392]") { StringIO.new.each_line(0) } + assert_raise(ArgumentError, "[ruby-dev:43392]") { StringIO.new.each_line(0){} } + assert_raise(ArgumentError, "[ruby-dev:43392]") { StringIO.new.each_line("a",0){} } end end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/