Exception: CheckoutRu::Error

Inherits:
RuntimeError
  • Object
show all
Defined in:
lib/checkout_ru/error.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message, code = nil) ⇒ Error

Returns a new instance of Error.



27
28
29
30
# File 'lib/checkout_ru/error.rb', line 27

def initialize(message, code = nil)
  @code = code
  super(message)
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



25
26
27
# File 'lib/checkout_ru/error.rb', line 25

def code
  @code
end

Class Method Details

.construct(response) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/checkout_ru/error.rb', line 4

def construct(response)
  code, message = parse_error_response(response)
  error_message = "#{message} (checkout.ru error, code #{code})"

  case code
  when 4   then NoDeliveryFoundError.new(error_message, code)
  when nil then new(response.inspect)
  else new(error_message, code)
  end
end

.parse_error_response(response) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/checkout_ru/error.rb', line 15

def parse_error_response(response)
  if response.respond_to?(:[]) &&
    response[:error_code] &&
    response[:error_message]

    [response[:error_code], response[:error_message]]
  end
end