fake_io¶ ↑
Description¶ ↑
{FakeIO} is a mixin module for creating fake {IO}[https://rubydoc.info/stdlib/core/IO]-like classes.
Features¶ ↑
-
Supports all of the Ruby 2.x and 3.x IO instance methods.
-
Emulates buffered I/O.
-
UTF-8 aware.
-
Can be included into any Class.
-
Zero dependencies.
Requirements¶ ↑
-
Ruby >= 2.0.0
Install¶ ↑
$ gem install fake_io
gemspec¶ ↑
gem.add_dependency 'fake_io', '~> 1.0'
Gemfile¶ ↑
gem 'fake_io', '~> 1.0'
Examples¶ ↑
require 'fake_io' class FakeFile include FakeIO def initialize(chunks=[]) @index = 0 @chunks = chunks io_initialize end protected def io_read unless (block = @chunks[@index]) raise(EOFError,"end of stream") end @index += 1 return block end def io_write(data) @chunks[@index] = data @index += 1 return data.length end end file = FakeFile.new(["one\ntwo\n", "three\nfour", "\n"]) file.readlines # => ["one\n", "two\n", "three\n", "four\n"]
Copyright¶ ↑
Copyright © 2021 Hal Brodigan
See {file:LICENSE.txt} for details.