Sha256: b79553e141f21c5e2fd0da88123f00848a687f3056545f9ab34d65713139623d

Contents?: true

Size: 611 Bytes

Versions: 2

Compression:

Stored size: 611 Bytes

Contents

# frozen_string_literal: true

module FriendlyShipping
  # Raised when an API error is returned. Parent of carrier-specific API error classes.
  class ApiError < StandardError
    # @return [RestClient::Exception] the cause of the error
    attr_reader :cause

    # @param cause [RestClient::Exception, nil] the cause of the error
    # @param message [String] optional descriptive message
    def initialize(cause, message = nil)
      raise ArgumentError, "Must provide either a cause or a message" if cause.nil? && message.nil?

      @cause = cause
      super(message || cause&.message)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
friendly_shipping-0.10.1 lib/friendly_shipping/api_error.rb
friendly_shipping-0.10.0 lib/friendly_shipping/api_error.rb