# File lib/uber-s3/response.rb, line 23 def success? return if status < 400 || body.to_s.empty? # Errors are XML doc = Util::XmlDocument.new(body) self.error_key = doc.xpath('//Error/Code').first.text self.error_message = doc.xpath('//Error/Message').first.text error_klass = instance_eval("Error::#{error_key}") rescue nil if error_klass.nil? raise Error::Unknown, "HTTP Response: #{status}, Body: #{body}" else raise error_klass.new(error_key, error_message) end end