module Faraday::Adapter::EMHttp::Options
Options
is a module containing helpers to convert the Faraday
env object into options hashes for EMHTTP method calls.
Public Instance Methods
configure_compression(options, env)
click to toggle source
Reads out compression header settings from env into options
# File lib/faraday/adapter/em_http.rb, line 79 def configure_compression(options, env) return unless (env[:method] == :get) && !options[:head].key?('accept-encoding') options[:head]['accept-encoding'] = 'gzip, compressed' end
configure_proxy(options, env)
click to toggle source
Reads out proxy settings from env into options
# File lib/faraday/adapter/em_http.rb, line 39 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
configure_socket(options, env)
click to toggle source
Reads out host and port settings from env into options
# File lib/faraday/adapter/em_http.rb, line 51 def configure_socket(options, env) bind = request_options(env)[:bind] return unless bind options[:bind] = { host: bind[:host], port: bind[:port] } end
configure_ssl(options, env)
click to toggle source
Reads out SSL certificate settings from env into options
# File lib/faraday/adapter/em_http.rb, line 62 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
configure_timeout(options, env)
click to toggle source
Reads out timeout settings from env into options
# File lib/faraday/adapter/em_http.rb, line 72 def configure_timeout(options, env) req = request_options(env) options[:inactivity_timeout] = request_timeout(:read, req) options[:connect_timeout] = request_timeout(:open, req) end
connection_config(env)
click to toggle source
@return [Hash]
# File lib/faraday/adapter/em_http.rb, line 13 def connection_config(env) options = {} configure_proxy(options, env) configure_timeout(options, env) configure_socket(options, env) configure_ssl(options, env) options end
read_body(env)
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 33 def read_body(env) body = env[:body] body.respond_to?(:read) ? body.read : body end
request_config(env)
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 22 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
request_options(env)
click to toggle source
# File lib/faraday/adapter/em_http.rb, line 86 def request_options(env) env[:request] end