Sha256: d3fcbb55685087b2852a7898bcbdba65548a7eb9bc4a176bc005df456e4d02ec

Contents?: true

Size: 1.16 KB

Versions: 5

Compression:

Stored size: 1.16 KB

Contents

module CheckMobi
  module Configuration
    VALID_CONNECTION_KEYS = [:endpoint, :user_agent, :method, :content_type, :accept_type].freeze
    VALID_OPTIONS_KEYS = [:api_key, :format].freeze
    VALID_CONFIG_KEYS     = (VALID_CONNECTION_KEYS + VALID_OPTIONS_KEYS).freeze

    DEFAULT_ENDPOINT = 'https://api.checkmobi.com/v1'.freeze

    DEFAULT_METHOD = :get.freeze
    DEFAULT_USER_AGENT = "CheckMobi API Ruby Gem".freeze

    DEFAULT_API_KEY = nil.freeze
    DEFAULT_FORMAT = :json.freeze
    DEFAULT_CONTENT_TYPE = "application/json".freeze
    DEFAULT_ACCEPT_TYPE = "application/json".freeze
    DEFAULT_PLATFORM = 'web'

    attr_accessor *VALID_CONFIG_KEYS

    def self.extended(base)
      base.reset
    end

    def reset
      self.endpoint = DEFAULT_ENDPOINT
      self.method = DEFAULT_METHOD
      self.user_agent = DEFAULT_USER_AGENT
      self.api_key = DEFAULT_API_KEY
      self.format = DEFAULT_FORMAT
      self.content_type = DEFAULT_CONTENT_TYPE
      self.accept_type = DEFAULT_ACCEPT_TYPE
    end

    def configure
      yield self
    end

    def options
      Hash[*VALID_CONFIG_KEYS.map{|key| [key, send(key)]}.flatten]
    end

  end #configuration
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
check_mobi-1.0.5 lib/check_mobi/configuration.rb
check_mobi-1.0.4 lib/check_mobi/configuration.rb
check_mobi-1.0.3 lib/check_mobi/configuration.rb
check_mobi-1.0.2 lib/check_mobi/configuration.rb
check_mobi-1.0.1 lib/check_mobi/configuration.rb