class EtCcdClient::Exceptions::Base

Attributes

original_exception[RW]
request[R]
url[RW]

Public Class Methods

exception(*args, **kw_args) click to toggle source
# File lib/et_ccd_client/exceptions/base.rb, line 15
def self.exception(*args, **kw_args)
  new(*args, **kw_args)
end
new(original_exception, url: nil, request: nil) click to toggle source
# File lib/et_ccd_client/exceptions/base.rb, line 19
def initialize(original_exception, url: nil, request: nil)
  self.original_exception = original_exception
  self.url = url
  self.request = request
end
raise_exception(original_exception, **kw_args) click to toggle source
# File lib/et_ccd_client/exceptions/base.rb, line 6
def self.raise_exception(original_exception, **kw_args)
  expected_error_class = original_exception.class.name.split('::').last
  if EtCcdClient::Exceptions.const_defined?(expected_error_class)
    raise EtCcdClient::Exceptions.const_get(expected_error_class).new original_exception, **kw_args
  else
    raise new(original_exception, **kw_args)
  end
end

Public Instance Methods

response() click to toggle source
# File lib/et_ccd_client/exceptions/base.rb, line 25
def response
  original_exception.response
end
to_s() click to toggle source
# File lib/et_ccd_client/exceptions/base.rb, line 29
def to_s
  json = JSON.parse(response.body) rescue JSON::JSONError
  message = if json.nil? || json == JSON::JSONError
    ''
  else
    json['message'] || json['error'] || ''
  end
  if url
    "#{original_exception.message} - #{message} ('#{url}')"
  else
    "#{original_exception.message} - #{message}"
  end
end

Private Instance Methods

request=(request) click to toggle source
# File lib/et_ccd_client/exceptions/base.rb, line 47
def request=(request)
  @request = request&.args
end