class Frodo::Middleware::Gzip
Middleware
to uncompress GZIP compressed responses from Salesforce.
Constants
- ACCEPT_ENCODING_HEADER
- CONTENT_ENCODING_HEADER
- ENCODING
Public Instance Methods
call(env)
click to toggle source
# File lib/frodo/middleware/gzip.rb, line 12 def call(env) env[:request_headers][ACCEPT_ENCODING_HEADER] = ENCODING if @options[:compress] @app.call(env).on_complete do |environment| on_complete(environment) end end
decompress(body)
click to toggle source
Internal: Decompresses a gzipped string.
# File lib/frodo/middleware/gzip.rb, line 29 def decompress(body) Zlib::GzipReader.new(StringIO.new(body)).read end
gzipped?(env)
click to toggle source
Internal: Returns true if the response is gzipped.
# File lib/frodo/middleware/gzip.rb, line 24 def gzipped?(env) env[:response_headers][CONTENT_ENCODING_HEADER] == ENCODING end
on_complete(env)
click to toggle source
# File lib/frodo/middleware/gzip.rb, line 19 def on_complete(env) env[:body] = decompress(env[:body]) if gzipped?(env) end