Module: IOExtras

Defined in:
lib/zip/ioextras.rb

Overview

:nodoc:

Defined Under Namespace

Modules: AbstractInputStream, AbstractOutputStream, FakeIO

Constant Summary collapse

CHUNK_SIZE =
131072
RANGE_ALL =
0..-1

Class Method Summary collapse

Class Method Details

.copy_stream(ostream, istream) ⇒ Object



7
8
9
10
# File 'lib/zip/ioextras.rb', line 7

def self.copy_stream(ostream, istream)
  s = ''
  ostream.write(istream.read(CHUNK_SIZE, s)) until istream.eof? 
end

.copy_stream_n(ostream, istream, nbytes) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/zip/ioextras.rb', line 12

def self.copy_stream_n(ostream, istream, nbytes)
  s = ''
  toread = nbytes
  while (toread > 0 && ! istream.eof?) 
    tr = toread > CHUNK_SIZE ? CHUNK_SIZE : toread
    ostream.write(istream.read(tr, s))
    toread -= tr
  end 
end