Module: Genability::Configuration

Included in:
Genability
Defined in:
lib/genability/configuration.rb

Overview

Defines constants and methods related to configuration

Constant Summary collapse

VALID_OPTIONS_KEYS =

An array of valid keys in the options hash when configuring a API

[
  :adapter,
  :application_id,
  :application_key,
  :endpoint,
  :format,
  :user_agent,
  :proxy
].freeze
VALID_FORMATS =
Note:

Not all methods support the XML format.

An array of valid request/response formats

[
:json].freeze
DEFAULT_ADAPTER =
Note:

The default faraday adapter is Net::HTTP.

The adapter that will be used to connect if none is set

Faraday.default_adapter
DEFAULT_APPLICATION_ID =

By default, don't set an application ID

nil
DEFAULT_APPLICATION_KEY =

By default, don't set an application key

nil
DEFAULT_ENDPOINT =

The endpoint that will be used to connect if none is set

'http://api.genability.com/rest/'
DEFAULT_FORMAT =
Note:

JSON is the only available format at this time

The response format appended to the path and sent in the 'Accept' header if none is set

:json
DEFAULT_PROXY =

By default, don't use a proxy server

nil
DEFAULT_USER_AGENT =

The user agent that will be sent to the API endpoint if none is set

"Genability API Ruby Gem".freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(base) ⇒ Object

When this module is extended, set all configuration options to their default values



53
54
55
# File 'lib/genability/configuration.rb', line 53

def self.extended(base)
  base.reset
end

Instance Method Details

#configure {|_self| ... } ⇒ Object

Convenience method to allow configuration options to be set in a block

Yields:

  • (_self)

Yield Parameters:



58
59
60
# File 'lib/genability/configuration.rb', line 58

def configure
  yield self
end

#optionsObject

Create a hash of options and their values



63
64
65
66
67
# File 'lib/genability/configuration.rb', line 63

def options
  VALID_OPTIONS_KEYS.inject({}) do |option, key|
    option.merge!(key => send(key))
  end
end

#resetObject

Reset all configuration options to defaults



70
71
72
73
74
75
76
77
78
# File 'lib/genability/configuration.rb', line 70

def reset
  self.adapter          = DEFAULT_ADAPTER
  self.application_id   = DEFAULT_APPLICATION_ID
  self.application_key  = DEFAULT_APPLICATION_KEY
  self.endpoint         = DEFAULT_ENDPOINT
  self.format           = DEFAULT_FORMAT
  self.user_agent       = DEFAULT_USER_AGENT
  self.proxy            = DEFAULT_PROXY
end