Sha256: 9f5e4e86121220b420d915395a40a3beb5c38b01bca0e70a59bf6cc8f375991d

Contents?: true

Size: 753 Bytes

Versions: 3

Compression:

Stored size: 753 Bytes

Contents

module LayerVault
  module Configurable
    attr_accessor :access_token, :user_agent, :middleware
    attr_writer :api_endpoint

    class << self
      def keys
        @keys ||= [
          :access_token,
          :api_endpoint,
          :user_agent,
          :middleware
        ]
      end
    end

    def configure
      yield self
    end

    def reset!
      LayerVault::Configurable.keys.each do |key|
        instance_variable_set(:"@#{key}", LayerVault::Default.options[key])
      end
      self
    end

    alias setup reset!

    def api_endpoint
      ::File.join(@api_endpoint, "")
    end

    private

    def options
      Hash[LayerVault::Configurable.keys.map{|key| [key, instance_variable_get(:"@#{key}")]}]
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
layervault-0.1.2 lib/layervault/mixins/configurable.rb
layervault-0.1.1 lib/layervault/mixins/configurable.rb
layervault-0.1.0 lib/layervault/mixins/configurable.rb