Class: ActiveMessaging::Adapters::AmazonSqs::SQSResponse

Inherits:
Object
  • Object
show all
Defined in:
lib/activemessaging/adapters/asqs.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(response) ⇒ SQSResponse

Returns a new instance of SQSResponse.



377
378
379
380
381
382
# File 'lib/activemessaging/adapters/asqs.rb', line 377

def initialize response
  # puts "response.body = #{response.body}"
  @http_response = response
  @headers = response.to_hash()
  @doc = REXML::Document.new(response.body)
end

Instance Attribute Details

#docObject

Returns the value of attribute doc.



375
376
377
# File 'lib/activemessaging/adapters/asqs.rb', line 375

def doc
  @doc
end

#headersObject

Returns the value of attribute headers.



375
376
377
# File 'lib/activemessaging/adapters/asqs.rb', line 375

def headers
  @headers
end

#http_responseObject

Returns the value of attribute http_response.



375
376
377
# File 'lib/activemessaging/adapters/asqs.rb', line 375

def http_response
  @http_response
end

Instance Method Details

#each_node(xp) ⇒ Object



412
413
414
# File 'lib/activemessaging/adapters/asqs.rb', line 412

def each_node(xp)
  REXML::XPath.each(doc.root, xp) {|n| yield n}
end

#errorsObject



392
393
394
395
396
397
398
399
400
401
402
403
404
405
# File 'lib/activemessaging/adapters/asqs.rb', line 392

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?Boolean

Returns:

  • (Boolean)


388
389
390
# File 'lib/activemessaging/adapters/asqs.rb', line 388

def errors?
  (not http_response.kind_of?(Net::HTTPSuccess)) or (message_type == "ErrorResponse")
end

#get_text(xpath, default = '') ⇒ Object



407
408
409
410
# File 'lib/activemessaging/adapters/asqs.rb', line 407

def get_text(xpath,default='')
  e = REXML::XPath.first( doc, xpath)
  e.nil? ? default : e.text
end

#message_typeObject



384
385
386
# File 'lib/activemessaging/adapters/asqs.rb', line 384

def message_type
  return doc ? doc.root.name : ''
end

#nodes(xp) ⇒ Object



416
417
418
# File 'lib/activemessaging/adapters/asqs.rb', line 416

def nodes(xp)
  doc.elements.to_a(xp)
end