Class: IOP::IOWriter

Inherits:
Object
  • Object
show all
Includes:
Sink
Defined in:
lib/iop/file.rb

Overview

Sink class to write received upstream data to external IO stream.

Contrary to FileWriter, this class does not manage attached IO instance, e.g. it makes no attempt to close it after processing.

### Use case: concatenate two files.

require 'iop/file'
io = File.new('output.dat', 'wb')
begin
  ( IOP::FileReader.new('file1.dat') | IOP::IOWriter.new(io) ).process!
  ( IOP::FileReader.new('file2.dat') | IOP::IOWriter.new(io) ).process!
ensure
  io.close
end

Since:

  • 0.1

Direct Known Subclasses

FileWriter

Instance Attribute Summary

Attributes included from Sink

#upstream

Instance Method Summary collapse

Methods included from Sink

#process!

Constructor Details

#initialize(io) ⇒ IOWriter

Creates class instance.

Since:

  • 0.1



142
143
144
# File 'lib/iop/file.rb', line 142

def initialize(io)
  @io = io
end

Instance Method Details

#process(data = nil) ⇒ Object

Since:

  • 0.1



146
147
148
# File 'lib/iop/file.rb', line 146

def process(data = nil)
  @io.write(data)
end