Sha256: ff2ec1caeab149d022fa33b075314564b9c111ef54d0e9f9075780ef6d72730d
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true require "set" module HTTP module Features class AutoInflate < Feature SUPPORTED_ENCODING = Set.new(%w[deflate gzip x-gzip]).freeze private_constant :SUPPORTED_ENCODING def wrap_response(response) return response unless supported_encoding?(response) options = { :status => response.status, :version => response.version, :headers => response.headers, :proxy_headers => response.proxy_headers, :connection => response.connection, :body => stream_for(response.connection), :request => response.request } options[:uri] = response.uri if response.uri Response.new(options) end def stream_for(connection) Response::Body.new(Response::Inflater.new(connection)) end private def supported_encoding?(response) content_encoding = response.headers.get(Headers::CONTENT_ENCODING).first content_encoding && SUPPORTED_ENCODING.include?(content_encoding) end HTTP::Options.register_feature(:auto_inflate, self) end end end
Version data entries
4 entries across 4 versions & 1 rubygems