module Faraday::Adapter::EMHttp::Options
def configure_compression(options, env)
def configure_compression(options, env) return unless (env[:method] == :get) && !options[:head].key?('accept-encoding') options[:head]['accept-encoding'] = 'gzip, compressed' end
def configure_proxy(options, env)
def configure_proxy(options, env) proxy = request_options(env)[:proxy] return unless proxy options[:proxy] = { host: proxy[:uri].host, port: proxy[:uri].port, authorization: [proxy[:user], proxy[:password]] } end
def configure_socket(options, env)
def configure_socket(options, env) bind = request_options(env)[:bind] return unless bind options[:bind] = { host: bind[:host], port: bind[:port] } end
def configure_ssl(options, env)
def configure_ssl(options, env) return unless env[:url].scheme == 'https' && env[:ssl] options[:ssl] = { cert_chain_file: env[:ssl][:ca_file], verify_peer: env[:ssl].fetch(:verify, true) } end
def configure_timeout(options, env)
def configure_timeout(options, env) req = request_options(env) options[:inactivity_timeout] = request_timeout(:read, req) options[:connect_timeout] = request_timeout(:open, req) end
def connection_config(env)
- 
        (Hash)-
def connection_config(env) options = {} configure_proxy(options, env) configure_timeout(options, env) configure_socket(options, env) configure_ssl(options, env) options end
def read_body(env)
def read_body(env) body = env[:body] body.respond_to?(:read) ? body.read : body end
def request_config(env)
def request_config(env) options = { body: read_body(env), head: env[:request_headers] # keepalive: true, # file: 'path/to/file', # stream data off disk } configure_compression(options, env) options end
def request_options(env)
def request_options(env) env[:request] end