class Protocol::HTTP::Body::Deflate

Public Class Methods

for(body, window_size = GZIP, level = DEFAULT_LEVEL) click to toggle source
# File lib/protocol/http/body/deflate.rb, line 88
def self.for(body, window_size = GZIP, level = DEFAULT_LEVEL)
        self.new(body, Zlib::Deflate.new(level, window_size))
end

Public Instance Methods

read() click to toggle source
Calls superclass method
# File lib/protocol/http/body/deflate.rb, line 92
def read
        return if @stream.finished?
        
        # The stream might have been closed while waiting for the chunk to come in.
        if chunk = super
                @input_length += chunk.bytesize
                
                chunk = @stream.deflate(chunk, Zlib::SYNC_FLUSH)
                
                @output_length += chunk.bytesize
                
                return chunk
        elsif !@stream.closed?
                chunk = @stream.finish
                
                @output_length += chunk.bytesize
                
                return chunk.empty? ? nil : chunk
        end
end