Sha256: f518077b1359519fc771b37b9e3b777d607b68fd943a9cf6739eb40ffad14e24

Contents?: true

Size: 1.28 KB

Versions: 6

Compression:

Stored size: 1.28 KB

Contents

module LedgerSync
  class ResourceError < Error
    attr_reader :resource

    def initialize(message:, resource:)
      @resource = resource
      super(message: message)
    end
    class AttributeTypeError < self
      attr_reader :attribute, :resource, :value

      def initialize(attribute:, resource:, value:)
        @attribute = attribute
        @resource = resource
        @value = value

        resource_class = resource.class

        message = attribute.type.error_message(
          attribute: attribute,
          resource: resource,
          value: value
        )

        super(message: message, resource: nil)
      end
    end

    class ReferenceAssignmentError < self
      def initialize(attribute:, resource:, value:)
        resource_class = resource.class
        message = "Attribute #{attribute} value for #{resource_class.name} should be a #{asdf}.  Given: #{value.class}"

        super(message: message, resource: resource)
      end
    end

    class MissingResourceError < self
      attr_reader :resource_type, :resource_external_id

      def initialize(message:, resource_type:, resource_external_id:)
        @resource_type = resource_type
        @resource_external_id = resource_external_id
        super(message: message, resource: nil)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ledger_sync-1.3.4 lib/ledger_sync/error/resource_errors.rb
ledger_sync-1.3.3 lib/ledger_sync/error/resource_errors.rb
ledger_sync-1.3.2 lib/ledger_sync/error/resource_errors.rb
ledger_sync-1.3.1 lib/ledger_sync/error/resource_errors.rb
ledger_sync-1.1.3 lib/ledger_sync/error/resource_errors.rb
ledger_sync-1.1.2 lib/ledger_sync/error/resource_errors.rb