提交 681bf1fc 编写于 作者: A Aaron Patterson

backporting IO#binread for 1.8 users

上级 0b212117
if RUBY_VERSION < '1.9.2'
# :stopdoc:
class IO
def self.binread(name, length = nil, offset = nil)
return File.read name unless length || offset
File.open(name, 'rb') { |f|
f.seek offset if offset
f.read length
}
end
end
# :startdoc:
end
require 'abstract_unit'
require 'active_support/core_ext/io'
class IOTest < Test::Unit::TestCase
def test_binread_one_arg
assert_equal File.read(__FILE__), IO.binread(__FILE__)
end
def test_binread_two_args
assert_equal File.read(__FILE__).bytes.first(10).pack('C*'),
IO.binread(__FILE__, 10)
end
def test_binread_three_args
actual = IO.binread(__FILE__, 5, 10)
expected = File.open(__FILE__, 'rb') { |f|
f.seek 10
f.read 5
}
assert_equal expected, actual
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册