Method: Niftycloud::Request.parse

Defined in:
lib/niftycloud/request.rb

.parse(body) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/niftycloud/request.rb', line 14

def self.parse(body)
  body = REXML::Document.new(body).root.to_h["reservationSet"]

  if body.is_a? Hash
    ObjectifiedHash.new body
  elsif body.is_a? Array
    PaginatedResponse.new(body.collect! { |e| ObjectifiedHash.new(e) })
  elsif body
    body
  elsif !body
    false
  elsif body.nil?
    false
  else
    raise Error::Parsing.new "Couldn't parse a response body"
  end
end