class HTTPClient::Session::LenientInflater

This inflater allows deflate compression with/without zlib header

Public Class Methods

new() click to toggle source
# File lib/httpclient/session.rb, line 660
def initialize
  @inflater = Zlib::Inflate.new(Zlib::MAX_WBITS)
  @first = true
end

Public Instance Methods

inflate(body) click to toggle source
# File lib/httpclient/session.rb, line 665
def inflate(body)
  if @first
    first_inflate(body)
  else
    @inflater.inflate(body)
  end
end

Private Instance Methods

first_inflate(body) click to toggle source
# File lib/httpclient/session.rb, line 675
def first_inflate(body)
  @first = false
  begin
    @inflater.inflate(body)
  rescue Zlib::DataError
    # fallback to deflate without zlib header
    @inflater = Zlib::Inflate.new(-Zlib::MAX_WBITS)
    @inflater.inflate(body)
  end
end