Sha256: 6742a0be7c6ee9b83e2271b211053a075e8e4d9d32b14c0b47abd48ea481b95e
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
# frozen_string_literal: true module HTTPX module Plugins module Compression module Deflate def self.load_dependencies(klass) require "stringio" require "zlib" klass.plugin(:"compression/gzip") end def self.configure(*) Compression.register "deflate", self end module Deflater module_function def deflate(raw, buffer, chunk_size:) 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? ensure deflater.close if deflater end end module_function def deflater Deflater end def inflater(bytesize) GZIP::Inflater.new(bytesize) end end end register_plugin :"compression/deflate", Compression::Deflate end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
httpx-0.12.0 | lib/httpx/plugins/compression/deflate.rb |