summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2015-09-28 12:24:51 +0900
committerTomoyuki Sahara <[email protected]>2015-09-28 12:24:51 +0900
commit1f217ea82eea77457c69923f8946d2314e13b9ba (patch)
treec62859b02422d5477bd54b1f0daeaed649b352ee
parent1d6b7f9bba247bef1da615d1c9f8d0bcc17456ea (diff)
parent9bbfc38bb4ee3a5f66f82a68542518f397bb9897 (diff)
downloadmruby-1f217ea82eea77457c69923f8946d2314e13b9ba.tar.gz
mruby-1f217ea82eea77457c69923f8946d2314e13b9ba.zip
Merge pull request #46 from takahashim/add-rewind
support IO#rewind
-rw-r--r--mrblib/io.rb4
-rw-r--r--test/io.rb11
2 files changed, 15 insertions, 0 deletions
diff --git a/mrblib/io.rb b/mrblib/io.rb
index 30eb47404..4d2fda5f3 100644
--- a/mrblib/io.rb
+++ b/mrblib/io.rb
@@ -141,6 +141,10 @@ class IO
seek(i, SEEK_SET)
end
+ def rewind
+ seek(0, SEEK_SET)
+ end
+
def seek(i, whence = SEEK_SET)
raise IOError if closed?
@pos = sysseek(i, whence)
diff --git a/test/io.rb b/test/io.rb
index a5ce7e049..a9bdc3e4f 100644
--- a/test/io.rb
+++ b/test/io.rb
@@ -256,6 +256,17 @@ assert('IO#pos=, IO#seek') do
io.closed?
end
+assert('IO#rewind') do
+ fd = IO.sysopen $mrbtest_io_rfname
+ io = IO.new fd
+ assert_equal 'm', io.getc
+ assert_equal 1, io.pos
+ assert_equal 0, io.rewind
+ assert_equal 0, io.pos
+ io.close
+ io.closed?
+end
+
assert('IO#gets') do
fd = IO.sysopen $mrbtest_io_rfname
io = IO.new fd