module WOTC::Configuration

Defines constants and methods related to configuration

Constants

DEFAULT_ACCESS_TOKEN

By default, don't set an access token

DEFAULT_ADAPTER

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

@note The default faraday adapter is Net::HTTP.

DEFAULT_AUTO_PAGINATE

By default, enable auto-paginate

DEFAULT_CONNECTION_OPTIONS

By default, don't set any connection options

DEFAULT_ENDPOINT

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

DEFAULT_FORMAT

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

@note JSON is the only available format at this time

DEFAULT_HOST

By default, use sandbox environment

DEFAULT_PER_PAGE

By default, return 20 resources per page when there is an pagination.

DEFAULT_PROXY

By default, don't use a proxy server

DEFAULT_USER_AGENT

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

VALID_FORMATS

An array of valid request/response formats

VALID_OPTIONS_KEYS

An array of valid keys in the options hash when configuring a {WOTC::API}

Public Class Methods

extended(base) click to toggle source

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

# File lib/wotc/configuration.rb, line 62
def self.extended(base)
  base.reset
end

Public Instance Methods

configure() { |self| ... } click to toggle source

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

# File lib/wotc/configuration.rb, line 67
def configure
  yield self
end
options() click to toggle source

Create a hash of options and their values

# File lib/wotc/configuration.rb, line 72
def options
  VALID_OPTIONS_KEYS.inject({}) do |option, key|
    option.merge!(key => send(key))
  end
end
reset() click to toggle source

Reset all configuration options to defaults

# File lib/wotc/configuration.rb, line 79
def reset
  self.access_token       = DEFAULT_ACCESS_TOKEN
  self.adapter            = DEFAULT_ADAPTER
  self.connection_options = DEFAULT_CONNECTION_OPTIONS
  self.host               = DEFAULT_HOST
  self.endpoint           = DEFAULT_ENDPOINT
  self.format             = DEFAULT_FORMAT
  self.proxy              = DEFAULT_PROXY
  self.user_agent         = DEFAULT_USER_AGENT
  self.auto_paginate      = DEFAULT_AUTO_PAGINATE
  self.per_page           = DEFAULT_PER_PAGE
end