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>
|
Sat Apr 9 21:54:15 2011 Shota Fukumori <sorah@tubusu.net>
|
||||||
|
|
||||||
* ext/stringio/stringio.c (strio_each, strio_readlines):
|
* 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);
|
struct StringIO *ptr = StringIO(self);
|
||||||
VALUE line;
|
VALUE line;
|
||||||
|
|
||||||
|
RETURN_ENUMERATOR(self, argc, argv);
|
||||||
|
|
||||||
if(argc > 0 && TYPE(argv[argc-1]) == T_FIXNUM &&
|
if(argc > 0 && TYPE(argv[argc-1]) == T_FIXNUM &&
|
||||||
FIX2INT(argv[argc-1]) == 0) {
|
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)))) {
|
while (!NIL_P(line = strio_getline(argc, argv, readable(ptr)))) {
|
||||||
rb_yield(line);
|
rb_yield(line);
|
||||||
}
|
}
|
||||||
|
|
|
@ -488,6 +488,7 @@ class TestStringIO < Test::Unit::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_each_line_limit_0
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue