1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/lib/fog/cloudsigma/error.rb
Paul Thornthwaite 2e0b7e545a Standardise empty lines throughout codebase
Done with `rubocop --auto-correct --only EmptyLineBetweenDefs,EmptyLines,EmptyLinesAroundBody`
2014-05-26 14:20:02 +01:00

39 lines
1.2 KiB
Ruby

module Fog
module CloudSigma
module Errors
class Error < Fog::Errors::Error
attr_accessor :type, :error_point
def initialize(message, type='n/a', error_point=nil)
@type = type
@error_point = error_point
super(message)
end
end
class NotFound < Error; end
class RequestError < Error; end
class ServerError < Error; end
def self.slurp_http_status_error(error)
error_class = case error.response[:status]
when 404
NotFound
when 500..599
ServerError
when 400..499
RequestError
else
Error
end
new_error = error_class.new(error.response[:body].first['error_message'],
error.response[:body].first['error_type'],
error.response[:body].first['error_point'])
new_error.set_backtrace(error.backtrace)
new_error.verbose = error.message
new_error
end
end
end
end