class AceClient::Base

Attributes

access_key_id[RW]
endpoint[RW]
http_method[RW]
http_proxy[RW]
last_response[RW]
last_response_time[RW]
secret_access_key[RW]
use_ssl[RW]
user_agent[RW]

Public Class Methods

new(options) click to toggle source
# File lib/ace-client/base.rb, line 18
def initialize(options)
  @access_key_id = options[:access_key_id] || ENV['ACE_ACCESS_KEY_ID']
  @secret_access_key = options[:secret_access_key] || ENV['ACE_SECRET_ACCESS_KEY']
  @endpoint = options[:endpoint] || ENV['ACE_ENDPOINT']
  @http_proxy = options[:http_proxy] || ENV['HTTP_PROXY']
  @http_method = options[:http_method] || :post
  @access_key_id_key = options[:access_key_id_key] || ENV['ACE_ACCESS_KEY_ID_KEY'] || 'AWSAccessKeyId'
  @host = options[:host]
  if @timeout = options[:timeout] || ENV['ACE_TIMEOUT']
    self.class.default_timeout @timeout
  end
  if options.key?(:use_ssl)
    @use_ssl = options[:use_ssl]
  elsif ENV['ACE_USE_SSL']
    if ENV['ACE_USE_SSL'] == 'false'
      @use_ssl = false
    else
      @use_ssl = true
    end
  else
    @use_ssl = true
  end
  if options.key?(:host_with_port)
    @host_with_port = options[:host_with_port]
  elsif ENV['ACE_HOST_WITH_PORT']
    if ENV['ACE_HOST_WITH_PORT'] == 'false'
      @host_with_port = false
    else
      @host_with_port = true
    end
  else
    @host_with_port = false
  end
  if options[:debug_output]
    self.class.debug_output(options[:debug_output])
  elsif %w(STDOUT STDERR).include?(ENV['ACE_DEBUG_OUTPUT'])
    if ENV['ACE_DEBUG_OUTPUT'] == 'STDOUT'
      self.class.debug_output($stdout)
    else
      self.class.debug_output($stderr)
    end
  end
  self.class.format (options[:response_format] || ENV['ACE_RESPONSE_FORMAT'] || self.class.format).to_sym
  @version = options[:version]
  @path = options[:path] || ENV['ACE_PATH'] || '/'
  @user_agent = options[:user_agent]
  @headers = options[:headers] || {}
  set_http_proxy
end

Public Instance Methods

endpoint_url() click to toggle source
# File lib/ace-client/base.rb, line 82
def endpoint_url
  protocol = use_ssl ? 'https' : 'http' 
  protocol + '://' + endpoint
end
record_response() { || ... } click to toggle source
# File lib/ace-client/base.rb, line 75
def record_response
  start_time = Time.now
  @last_response = yield
  @last_response_time = Time.now - start_time
  @last_response
end
set_http_proxy() click to toggle source
# File lib/ace-client/base.rb, line 68
def set_http_proxy
  if @http_proxy
    uri = URI.parse(@http_proxy)
    self.class.http_proxy(uri.host, uri.port)
  end
end