Class: ChimeraHttpClient::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/chimera_http_client/base.rb

Direct Known Subclasses

Connection, Queue

Constant Summary collapse

USER_AGENT =
"ChimeraHttpClient (by mediafinger)".freeze
DEFAULT_HEADERS =
{ "Content-Type" => "application/json" }.freeze
DEFAULT_HEADERS_ENV_VAR =
"CHIMERA_HTTP_CLIENT_DEFAULT_HEADERS".freeze

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Base

Returns a new instance of Base.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/chimera_http_client/base.rb', line 7

def initialize(options = {})
  fail(ChimeraHttpClient::ParameterMissingError, "base_url expected, but not given") if options[:base_url].nil?

  @base_url = options.fetch(:base_url)
  @deserializer = default_deserializer.merge(options.fetch(:deserializer, {}))
  @serializer = options.fetch(:serializer, ::ChimeraHttpClient::Serializer.json)
  @logger = options[:logger]
  @monitor = options[:monitor]
  @timeout = options[:timeout]
  @cache = options[:cache]
  @headers = DEFAULT_HEADERS.merge(headers_from_env).merge(options[:headers] || {})
  @user_agent = options.fetch(:user_agent, USER_AGENT)
  @verbose = options.fetch(:verbose, false)
  @retries = options[:retries] || 0
  @retry_delay = options[:retry_delay] || 1
end