Sha256: 031d271af088ea90119b088919410ccb4a0779492d279c6dc7c50b161f45d7ae

Contents?: true

Size: 828 Bytes

Versions: 3

Compression:

Stored size: 828 Bytes

Contents

module Gensee
  module Configurable
    attr_accessor :endpoint, :login, :password

    class << self
      USER_AGENT   = "Gensee Ruby Gem #{Gensee::VERSION}".freeze
      # List all keys
      # @return [Array]
      def keys
        @keys ||= [:endpoint, :login, :password]
      end

      def default_options
        {
          endpoint: ENV['GENSEE_ENDPOINT'],
          login: ENV['GENSEE_LOGIN'],
          password: ENV['GENSEE_PASSWORD']
        }
      end

      def user_agent
        ENV['GENSEE_USER_AGENT'] || USER_AGENT
      end
    end

    def options
      ary = Gensee::Configurable.keys.map do |key|
        [key, send(key) || Gensee::Configurable.default_options[key]]
      end
      Hash[ary]
    end

    # Set configuration options using a block
    def configure
      yield self
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gensee-0.1.2 lib/gensee/configurable.rb
gensee-0.1.1 lib/gensee/configurable.rb
gensee-0.1.0 lib/gensee/configurable.rb