Module: HTTPX::Plugins::Compression::Deflate::Deflater

Defined in:
lib/httpx/plugins/compression/deflate.rb

Class Method Summary collapse

Class Method Details

.deflate(raw, buffer = "".b, chunk_size: 16_384) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/httpx/plugins/compression/deflate.rb', line 25

def deflate(raw, buffer = "".b, chunk_size: 16_384)
  deflater = Zlib::Deflate.new
  while (chunk = raw.read(chunk_size))
    compressed = deflater.deflate(chunk)
    buffer << compressed
    yield compressed if block_given?
  end
  last = deflater.finish
  buffer << last
  yield last if block_given?
  buffer
ensure
  deflater.close if deflater
end