Home

Awesome

fake_io

CI Gem Version

Description

{FakeIO} is a mixin module for creating fake IO-like classes.

Features

Requirements

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

See {file:LICENSE.txt} for details.