Sha256: 16fb76b90ed8a9bb6c38f4fa65a894bdf238099a0aede3cc96f74dd6f18b8fbc

Contents?: true

Size: 1.55 KB

Versions: 21

Compression:

Stored size: 1.55 KB

Contents

module Gemfury
  # Defines constants and methods related to configuration
  module Configuration
    # An array of valid keys in the options hash when configuring
    VALID_OPTIONS_KEYS = [
      :user_api_key,
      :adapter,
      :endpoint,
      :user_agent,
      :account].freeze

    # The adapter that will be used to connect if none is set
    DEFAULT_ADAPTER = :net_http

    # The endpoint that will be used to connect if none is set
    DEFAULT_ENDPOINT = 'https://www.gemfury.com/1/'.freeze

    # The value sent in the 'User-Agent' header if none is set
    DEFAULT_USER_AGENT = "Gemfury RubyGem #{Gemfury::VERSION}".freeze

    # Default user API key
    DEFAULT_API_KEY = nil

    # Use the current account (no impersonation)
    DEFAULT_ACCOUNT = nil

    # @private
    attr_accessor *VALID_OPTIONS_KEYS

    # When this module is extended, set all configuration options to their default values
    def self.extended(base)
      base.reset
    end

    # Convenience method to allow configuration options to be set in a block
    def configure
      yield self
    end

    # Create a hash of options and their values
    def options
      options = {}
      VALID_OPTIONS_KEYS.each{|k| options[k] = send(k)}
      options
    end

    # Reset all configuration options to defaults
    def reset
      self.user_api_key       = DEFAULT_API_KEY
      self.adapter            = DEFAULT_ADAPTER
      self.endpoint           = DEFAULT_ENDPOINT
      self.user_agent         = DEFAULT_USER_AGENT
      self.account            = DEFAULT_ACCOUNT
      self
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
gemfury-0.4.19 lib/gemfury/configuration.rb
gemfury-0.4.18 lib/gemfury/configuration.rb
gemfury-0.4.17 lib/gemfury/configuration.rb
gemfury-0.4.16 lib/gemfury/configuration.rb
gemfury-0.4.14 lib/gemfury/configuration.rb
gemfury-0.4.12 lib/gemfury/configuration.rb
gemfury-0.4.11 lib/gemfury/configuration.rb
gemfury-0.4.10 lib/gemfury/configuration.rb
gemfury-0.4.9 lib/gemfury/configuration.rb
gemfury-0.4.8 lib/gemfury/configuration.rb
gemfury-0.4.7 lib/gemfury/configuration.rb
gemfury-0.4.6 lib/gemfury/configuration.rb
gemfury-0.4.5 lib/gemfury/configuration.rb
gemfury-0.4.4 lib/gemfury/configuration.rb
gemfury-0.4.3 lib/gemfury/configuration.rb
gemfury-0.4.3.rc lib/gemfury/configuration.rb
gemfury-0.4.2 lib/gemfury/configuration.rb
gemfury-0.4.1 lib/gemfury/configuration.rb
gemfury-0.4.0 lib/gemfury/configuration.rb
gemfury-0.4.0.beta2 lib/gemfury/configuration.rb