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.



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

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.



381
382
383
# File 'lib/activemessaging/adapters/asqs.rb', line 381

def doc
  @doc
end

#headersObject

Returns the value of attribute headers.



381
382
383
# File 'lib/activemessaging/adapters/asqs.rb', line 381

def headers
  @headers
end

#http_responseObject

Returns the value of attribute http_response.



381
382
383
# File 'lib/activemessaging/adapters/asqs.rb', line 381

def http_response
  @http_response
end

Instance Method Details

#each_node(xp) ⇒ Object



418
419
420
# File 'lib/activemessaging/adapters/asqs.rb', line 418

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

#errorsObject



398
399
400
401
402
403
404
405
406
407
408
409
410
411
# File 'lib/activemessaging/adapters/asqs.rb', line 398

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)


394
395
396
# File 'lib/activemessaging/adapters/asqs.rb', line 394

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

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



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

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

#message_typeObject



390
391
392
# File 'lib/activemessaging/adapters/asqs.rb', line 390

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

#nodes(xp) ⇒ Object



422
423
424
# File 'lib/activemessaging/adapters/asqs.rb', line 422

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