Module: HTTPX::Plugins::Brotli

Defined in:
lib/httpx/plugins/brotli.rb

Defined Under Namespace

Modules: RequestBodyClassMethods, ResponseBodyClassMethods Classes: Deflater, Error, Inflater

Class Method Summary collapse

Class Method Details

.decode(response, bytesize: nil) ⇒ Object



71
72
73
74
# File 'lib/httpx/plugins/brotli.rb', line 71

def decode(response, bytesize: nil)
  bytesize ||= response.headers.key?("content-length") ? response.headers["content-length"].to_i : Float::INFINITY
  Inflater.new(bytesize)
end

.encode(body) ⇒ Object



67
68
69
# File 'lib/httpx/plugins/brotli.rb', line 67

def encode(body)
  Deflater.new(body)
end

.extra_options(options) ⇒ Object



59
60
61
62
63
64
65
# File 'lib/httpx/plugins/brotli.rb', line 59

def self.extra_options(options)
  supported_compression_formats = (%w[br] + options.supported_compression_formats).freeze
  options.merge(
    supported_compression_formats: supported_compression_formats,
    headers: options.headers_class.new(options.headers.merge("accept-encoding" => supported_compression_formats))
  )
end

.load_dependenciesObject



54
55
56
57
# File 'lib/httpx/plugins/brotli.rb', line 54

def load_dependencies(*)
  gem "brotli", ">= 0.8.0"
  require "brotli"
end