Sha256: 0562f5b73601b1e6a91fc19e5cd9f2e265baada36412de58f5a56004dab97bf1

Contents?: true

Size: 1.62 KB

Versions: 4

Compression:

Stored size: 1.62 KB

Contents

require 'faraday'
require_relative 'version'

module TicketingHub
  module Configuration

    VALID_OPTIONS_KEYS = [
      :adapter,
      :faraday_config_block,
      :api_version,
      :api_endpoint,
      :oauth_endpoint,
      :client_id,
      :client_secret,
      :oauth_token,
      :proxy,
      :user_agent,
      :request_host,
      :auto_traversal].freeze

    DEFAULT_ADAPTER        = Faraday.default_adapter
    DEFAULT_API_VERSION    = 1
    DEFAULT_API_ENDPOINT   = ENV['TH_API_ENDPOINT'] || 'https://api.ticketinghub.com/'
    DEFAULT_OAUTH_ENDPOINT = ENV['TH_OAUTH_ENDPOINT'] || 'https://www.ticketinghub.com/oauth/'
    DEFAULT_USER_AGENT     = "TicketingHub Ruby Gem #{TicketingHub::VERSION}".freeze
    DEFAULT_AUTO_TRAVERSAL = false

    attr_accessor *VALID_OPTIONS_KEYS

    def self.extended base
      base.reset
    end

    def configure
      yield self
    end

    def options
      VALID_OPTIONS_KEYS.each_with_object Hash.new do |key, memo|
        memo[key] = send key
      end
    end

    def api_endpoint= value
      @api_endpoint = File.join value, ''
    end

    def faraday_config &block
      @faraday_config_block = block
    end

    def reset
      self.adapter        = DEFAULT_ADAPTER
      self.api_version    = DEFAULT_API_VERSION
      self.api_endpoint   = DEFAULT_API_ENDPOINT
      self.oauth_endpoint = DEFAULT_OAUTH_ENDPOINT
      self.client_id      = nil
      self.client_secret  = nil
      self.oauth_token    = nil
      self.proxy          = nil
      self.request_host   = nil
      self.user_agent     = DEFAULT_USER_AGENT
      self.auto_traversal = DEFAULT_AUTO_TRAVERSAL
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ticketinghub-1.0.3 lib/ticketing_hub/configuration.rb
ticketinghub-1.0.2 lib/ticketing_hub/configuration.rb
ticketinghub-1.0.1 lib/ticketing_hub/configuration.rb
ticketinghub-1.0.0 lib/ticketing_hub/configuration.rb