Method: Zip::Inflater#read

Defined in:
lib/zip/inflater.rb

#read(length = nil, outbuf = +'')) ⇒ Object



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

def read(length = nil, outbuf = +'')
  return (length.nil? || length.zero? ? '' : nil) if eof?

  while length.nil? || (@buffer.bytesize < length)
    break if input_finished?

    @buffer << produce_input
  end

  outbuf.replace(@buffer.slice!(0...(length || @buffer.bytesize)))
end