class SimpleShipping::RequestError

Raised when a remote request fails.

Public Class Methods

new(savon_fault) click to toggle source

@param [Savon::SOAPFault] savon_fault Savon exception

Calls superclass method
# File lib/simple_shipping/exceptions.rb, line 26
def initialize(savon_fault)
  fault = savon_fault.to_hash[:fault]

  @message =
    if fault[:faultcode] # SOAP 1.1 fault.
      detail = fault[:detail][:errors][:error_detail][:primary_error_code]
      "#{fault[:faultstring]} (#{detail[:code]}) #{detail[:description]}"
    elsif fault[:code] # SOAP 1.2 fault.
      "(#{fault[:code][:value]}) #{fault[:reason][:text]}"
    end

  super(@message)
end