class CFoundry::APIError
Exception representing errors returned by the API.
Attributes
description[R]
error_code[R]
request[R]
response[R]
Public Class Methods
error_classes()
click to toggle source
# File lib/cfoundry/errors.rb, line 71 def error_classes @error_classes ||= {} end
new(description = nil, error_code = nil, request = nil, response = nil)
click to toggle source
Create an APIError
with a given request and response.
# File lib/cfoundry/errors.rb, line 79 def initialize(description = nil, error_code = nil, request = nil, response = nil) @response = response @request = request @error_code = error_code || (response ? response[:status] : nil) @description = description || parse_description end
Public Instance Methods
request_trace()
click to toggle source
Calls superclass method
CFoundry::TraceHelpers#request_trace
# File lib/cfoundry/errors.rb, line 91 def request_trace super(request) end
response_trace()
click to toggle source
Calls superclass method
CFoundry::TraceHelpers#response_trace
# File lib/cfoundry/errors.rb, line 95 def response_trace super(response) end
to_s()
click to toggle source
Exception message.
# File lib/cfoundry/errors.rb, line 87 def to_s "#{error_code}: #{description}" end
Private Instance Methods
parse_description()
click to toggle source
# File lib/cfoundry/errors.rb, line 101 def parse_description return unless response parse_json(response[:body])[:description] rescue MultiJson::DecodeError response[:body] end
parse_json(x)
click to toggle source
# File lib/cfoundry/errors.rb, line 109 def parse_json(x) if x.empty? raise MultiJson::DecodeError.new("Empty JSON string", [], "") else MultiJson.load(x, :symbolize_keys => true) end end