class ActiveMessaging::Adapters::Sqs::SQSResponse

Attributes

doc[RW]
headers[RW]
http_response[RW]

Public Class Methods

new(response) click to toggle source
# File lib/activemessaging/adapters/sqs.rb, line 376
def initialize response
  # puts "response.body = #{response.body}"
  @http_response = response
  @headers = response.to_hash()
  @doc = REXML::Document.new(response.body)
end

Public Instance Methods

each_node(xp) { |n| ... } click to toggle source
# File lib/activemessaging/adapters/sqs.rb, line 411
def each_node(xp)
  REXML::XPath.each(doc.root, xp) {|n| yield n}
end
errors() click to toggle source
# File lib/activemessaging/adapters/sqs.rb, line 391
def errors
  return "HTTP Error: #{http_response.code} : #{http_response.message}" unless http_response.kind_of?(Net::HTTPSuccess)

  msg = nil
  each_node('//Error') { |n|
    msg ||= ""
    c = n.elements['Code'].text
    m = n.elements['Message'].text
    msg << ", " if msg != ""
    msg << "#{c} : #{m}"
  }

  return msg
end
errors?() click to toggle source
# File lib/activemessaging/adapters/sqs.rb, line 387
def errors?
  (not http_response.kind_of?(Net::HTTPSuccess)) or (message_type == 'ErrorResponse')
end
get_text(xpath,default='') click to toggle source
# File lib/activemessaging/adapters/sqs.rb, line 406
def get_text(xpath,default='')
  e = REXML::XPath.first( doc, xpath)
  e.nil? ? default : e.text
end
message_type() click to toggle source
# File lib/activemessaging/adapters/sqs.rb, line 383
def message_type
  return doc ? doc.root.name : ''
end
nodes(xp) click to toggle source
# File lib/activemessaging/adapters/sqs.rb, line 415
def nodes(xp)
  doc.elements.to_a(xp)
end