Sha256: c3208e65e0293833c996b17ee77084a5fe3b13ec1f20f8165c04c425dba6756a

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

require 'httparty'

module Centaman
  #:nodoc:
  class Wrapper
    include HTTParty
    
    if ENV['FIXIE_URL']
      FIXIE = URI.parse(ENV['FIXIE_URL'])
      http_proxy FIXIE.host, FIXIE.port, FIXIE.user, FIXIE.password
    end
    
    attr_reader :api_username, :api_password, :api_token

    def initialize(args = {})
      @api_username = ENV['CENTAMAN_API_USERNAME']
      @api_password = ENV['CENTAMAN_API_PASSWORD']      
      @api_token = ENV.fetch('CENTAMAN_API_TOKEN', generate_token)
      self.class.base_uri ENV['CENTAMAN_API_URL']
      after_init(args)
    end

    def headers
      { 'authorization' => "Basic #{api_token}", 'Content-Type' => 'application/json' }
    end

    def generate_token
      Base64.encode64("#{api_username}:#{api_password}")
    end

    def options
      [] # overwritten by children
    end

    def options_hash
      hash = {}
      options.each do |option_hash|
        next unless option_hash[:value].present?
        hash[option_hash[:key]] = option_hash[:value]
      end
      hash
    end

    def after_init(args = {})
      # hook method for subclasses
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
centaman-0.1.3 lib/centaman/wrapper.rb