Class: Sqs::Connection

Inherits:
Object
  • Object
show all
Includes:
Parser
Defined in:
lib/sqs/connection.rb

Overview

Class responsible for handling connections to amazon hosts

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Parser

#parse_create_queue_result, #parse_error, #parse_get_queue_attributes_result, #parse_list_queues_result, #parse_receive_message_result, #rexml_document

Constructor Details

#initialize(options = {}) ⇒ Connection

Parameters:

options

Hash of options

Options:

access_key_id

access key id

secret_access_key

secret access key

use_ssl

optional, defaults to false

debug

optional, defaults to false

timeout

optional, for Net::HTTP



19
20
21
22
23
24
25
# File 'lib/sqs/connection.rb', line 19

def initialize(options = {})
  @access_key_id = options[:access_key_id]
  @secret_access_key = options[:secret_access_key]
  @use_ssl = options[:use_ssl] || false
  @debug = options[:debug]
  @timeout = options[:timeout]
end

Instance Attribute Details

#access_key_idObject

Returns the value of attribute access_key_id.



7
8
9
# File 'lib/sqs/connection.rb', line 7

def access_key_id
  @access_key_id
end

#debugObject

Returns the value of attribute debug.



7
8
9
# File 'lib/sqs/connection.rb', line 7

def debug
  @debug
end

#secret_access_keyObject

Returns the value of attribute secret_access_key.



7
8
9
# File 'lib/sqs/connection.rb', line 7

def secret_access_key
  @secret_access_key
end

#timeoutObject

Returns the value of attribute timeout.



7
8
9
# File 'lib/sqs/connection.rb', line 7

def timeout
  @timeout
end

#use_sslObject Also known as: use_ssl?

Returns the value of attribute use_ssl.



7
8
9
# File 'lib/sqs/connection.rb', line 7

def use_ssl
  @use_ssl
end

Instance Method Details

#request(options) ⇒ Object

Makes request with given HTTP method, sets missing parameters, adds signature to request header and returns response object (Net::HTTPResponse)

Parameters:

options

hash of options

Options:

host

hostname to connect to, optional, defaults to queue.amazonaws.com

path

path to send request to, required, throws ArgumentError if not given

Returns:

Net::HTTPResponse object – response from remote server



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/sqs/connection.rb', line 40

def request(options)
  host = options.delete(:host) || HOST
  path = options.delete(:path) or raise ArgumentError, "No path given"

  request = Net::HTTP::Post.new(path)

  response = http(host).start do |http|
    add_common_options!(options)
    add_timestamp!(options)
    add_signature!(host, path, options)
    set_form_data!(request, options)
    http.request(request)
  end

  handle_response(response)
end