mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0a69f2e39d
commit
4e817b39b4
3 changed files with 14 additions and 4 deletions
|
@ -1,3 +1,12 @@
|
|||
Sat Apr 9 23:22:27 2011 Shota Fukumori <sorah@tubusu.net>
|
||||
|
||||
* 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@tubusu.net>
|
||||
|
||||
* ext/stringio/stringio.c (strio_each, strio_readlines):
|
||||
|
|
|
@ -1067,13 +1067,13 @@ strio_each(int argc, VALUE *argv, VALUE self)
|
|||
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);
|
||||
}
|
||||
|
|
|
@ -488,6 +488,7 @@ class TestStringIO < Test::Unit::TestCase
|
|||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue