Sha256: 25da263817a6d870fb3c3289a2e5c44f8df51a8da625e85675fb0cd7e79ee874

Contents?: true

Size: 660 Bytes

Versions: 2

Compression:

Stored size: 660 Bytes

Contents

# frozen_string_literal: true

module Peddler
  # @api private
  module Errors
    # Here I curate error classes I see value in creating up front so we can use
    # them for control flow. All other errors will be created at runtime.
    CODES = %w[
      AccessDenied
      InternalError
      InvalidAccessKeyId
      InvalidMarketplace
      QuotaExceeded
      RequestThrottled
    ].freeze

    # @api private
    class Error < StandardError
      attr_reader :cause

      def initialize(msg = nil, cause = nil)
        @cause = cause
        super msg
      end
    end

    CODES.each do |name|
      const_set name, Class.new(Error)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
peddler-1.6.7 lib/peddler/errors/error.rb
peddler-1.6.6 lib/peddler/errors/error.rb