[macruby-changes] [MacRuby/MacRuby] ee40af: IO#gets (and family) will return the string whose ...
noreply at github.com
noreply at github.com
Sat May 14 21:49:19 PDT 2011
Branch: refs/heads/master
Home: https://github.com/MacRuby/MacRuby
Commit: ee40af55c8a98b97ea54e406361985d9aa962c18
https://github.com/MacRuby/MacRuby/commit/ee40af55c8a98b97ea54e406361985d9aa962c18
Author: Watson <watson1978 at gmail.com>
Date: 2011-05-14 (Sat, 14 May 2011)
Changed paths:
M io.c
Log Message:
-----------
IO#gets (and family) will return the string whose newline of head was cut off when passed empty string as separator.
Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions
r, w = IO.pipe
w.write "\n\n\n\n\nfoo\n\nbar\n\n\nbaz"
w.close
assert_equal("\n\n", r.gets("\n\n"))
assert_equal("foo\n\n", r.gets(""))
assert_equal("bar\n\n", r.gets(""))
assert_equal("baz", r.gets("", 10))
puts :ok
}}}
Commit: 8067b8c2f250118e12a1b9429648a0be98bcd5aa
https://github.com/MacRuby/MacRuby/commit/8067b8c2f250118e12a1b9429648a0be98bcd5aa
Author: Watson <watson1978 at gmail.com>
Date: 2011-05-14 (Sat, 14 May 2011)
Changed paths:
M io.c
Log Message:
-----------
IO#lines will yield the string when given a block.
Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions
r, w = IO.pipe
w.puts "foo\n\nbar\nbaz"
w.close
assert_kind_of(Enumerator, r.lines)
ary = []
r.lines do |line|
ary << line
end
assert_equal(["foo\n", "\n", "bar\n", "baz\n"], ary)
puts :ok
}}}
Commit: f5d241e7ef3e1b39fb2507723f772eac3c79bc8d
https://github.com/MacRuby/MacRuby/commit/f5d241e7ef3e1b39fb2507723f772eac3c79bc8d
Author: Watson <watson1978 at gmail.com>
Date: 2011-05-14 (Sat, 14 May 2011)
Changed paths:
M io.c
Log Message:
-----------
IO#bytes will yield the byte data when given a block.
Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions
r, w = IO.pipe
w.puts "foo\nbar"
w.close
assert_kind_of(Enumerator, r.bytes)
ary = []
r.bytes do |c|
ary << c
end
assert_equal([102, 111, 111, 10, 98, 97, 114, 10], ary)
puts :ok
}}}
Commit: c11b342411b7238474f4ee9b958191c179df1856
https://github.com/MacRuby/MacRuby/commit/c11b342411b7238474f4ee9b958191c179df1856
Author: Watson <watson1978 at gmail.com>
Date: 2011-05-14 (Sat, 14 May 2011)
Changed paths:
M io.c
Log Message:
-----------
IO#chars will yield the character when given a block.
Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions
r, w = IO.pipe
w.puts "foo\nbar"
w.close
assert_kind_of(Enumerator, r.chars)
ary = []
r.chars do |c|
ary << c
end
assert_equal(["f", "o", "o", "\n", "b", "a", "r", "\n"], ary)
puts :ok
}}}
Commit: acfe5bc03b8908661a760d087b50ef6f4718790c
https://github.com/MacRuby/MacRuby/commit/acfe5bc03b8908661a760d087b50ef6f4718790c
Author: Watson <watson1978 at gmail.com>
Date: 2011-05-14 (Sat, 14 May 2011)
Changed paths:
M io.c
Log Message:
-----------
IO.open should close a descriptor when given a block, even if raise a exception inside block.
Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions
fd = IO.sysopen("/tmp/foo", "w")
io = nil
begin
IO.open(fd) {|f|
io = f
raise
}
rescue
assert_equal(true, io.closed?)
end
puts :ok
}}}
Commit: 8d7fdfe51daf0896f4f3e8c698a4592245f5313c
https://github.com/MacRuby/MacRuby/commit/8d7fdfe51daf0896f4f3e8c698a4592245f5313c
Author: Watson <watson1978 at gmail.com>
Date: 2011-05-14 (Sat, 14 May 2011)
Changed paths:
M io.c
Log Message:
-----------
IO.popen should close a descriptor when given a block, even if raise a exception inside block.
Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions
io = nil
begin
IO.popen("ruby -v", "r") {|f|
io = f
raise
}
rescue
assert_equal(true, io.closed?)
end
puts :ok
}}}
Compare: https://github.com/MacRuby/MacRuby/compare/981b6c7...8d7fdfe
More information about the macruby-changes
mailing list