Class: Google::APIClient::Gzip

Inherits:
Faraday::Response::Middleware
  • Object
show all
Includes:
Logging
Defined in:
lib/google/api_client/gzip.rb

Instance Method Summary collapse

Methods included from Logging

#logger

Instance Method Details

#on_complete(env) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/google/api_client/gzip.rb', line 9

def on_complete(env)
  encoding = env[:response_headers]['content-encoding'].to_s.downcase
  case encoding
  when 'gzip'
    logger.debug { "Decompressing gzip encoded response (#{env[:body].length} bytes)" }        
    env[:body] = Zlib::GzipReader.new(StringIO.new(env[:body])).read
    env[:response_headers].delete('content-encoding')
    logger.debug { "Decompressed (#{env[:body].length} bytes)" }        
  when 'deflate'
    logger.debug{ "Decompressing deflate encoded response (#{env[:body].length} bytes)" }        
    env[:body] = Zlib::Inflate.inflate(env[:body])
    env[:response_headers].delete('content-encoding')
    logger.debug { "Decompressed (#{env[:body].length} bytes)" }        
  end
end