[macruby-changes] [MacRuby/MacRuby] 26aa80: StringIO#{each, gets, readline, readlines} will ac...

noreply at github.com noreply at github.com
Thu Apr 7 00:59:25 PDT 2011


Branch: refs/heads/master
Home:   https://github.com/MacRuby/MacRuby

Commit: 26aa80126dfd06040d080aa1c518a33a5bb8c6e7
    https://github.com/MacRuby/MacRuby/commit/26aa80126dfd06040d080aa1c518a33a5bb8c6e7
Author: Watson <watson1978 at gmail.com>
Date:   2011-04-07 (Thu, 07 Apr 2011)

Changed paths:
  M lib/stringio.rb
  M spec/frozen/tags/macruby/library/stringio/gets_tags.txt

Log Message:
-----------
StringIO#{each, gets, readline, readlines} will accept limit argument.

Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions
require 'stringio'

f = StringIO.new("foo\nbar\nbaz\n")
assert_equal("fo", f.gets(nil, 2))
assert_equal("o\n", f.gets('', 2))
assert_equal(4, f.tell)

f = StringIO.new("foo\nbar\n\nbaz\n")
assert_equal("fo", f.gets('', 2))
assert_equal("o\nba", f.gets('a', 10))
assert_equal(6, f.tell)
assert_equal("r\n", f.gets('x', 2))

f = StringIO.new("a\nb")
assert_equal("a\n", f.gets)
assert_equal("b", f.gets('aa', 2))
assert_equal(nil, f.gets('aa', 2))

f = StringIO.new("foo\nbar\n\n\nbaz\n\n\n\n")
assert_equal("fo", f.gets('', 2))
assert_equal("o\n", f.gets('', 2))
assert_equal("ba", f.gets('', 2))

f = StringIO.new("this>is>an>example")
assert_equal("this>", f.gets("is>"))
assert_equal("is>an>", f.gets("an>"))
assert_equal("example", f.gets("example"))
assert_equal(nil, f.gets("ple"))

f = StringIO.new("a\nb")
assert_equal("a\n", f.gets(2))
assert_equal("", f.gets(0))

f = StringIO.new("\npara1\npara2\n\n\n\n\npara3\n\n")
assert_equal("para1\npara2\n\n", f.gets(''))
assert_equal(14, f.tell)
assert_equal("para3\n\n", f.gets(''))
assert_equal(24, f.tell)

puts :ok
}}}




More information about the macruby-changes mailing list