Sha256: 27f2b843796cca129e7d68a231308dbfdf481deebf06457d53b7d453029f3b08
Contents?: true
Size: 1.68 KB
Versions: 5
Compression:
Stored size: 1.68 KB
Contents
# encoding: utf-8 module Dynamoid # All the errors specific to Dynamoid. The goal is to mimic ActiveRecord. module Errors # Generic Dynamoid error class Error < StandardError; end class MissingRangeKey < Error; end class MissingIndex < Error; end # InvalidIndex is raised when an invalid index is specified, for example if # specified key attribute(s) or projected attributes do not exist. class InvalidIndex < Error def initialize(item) if (item.is_a? String) super(item) else super("Validation failed: #{item.errors.full_messages.join(", ")}") end end end # This class is intended to be private to Dynamoid. class ConditionalCheckFailedException < Error attr_reader :inner_exception def initialize(inner) super @inner_exception = inner end end class RecordNotUnique < ConditionalCheckFailedException attr_reader :original_exception def initialize(original_exception, record) super("Attempted to write record #{record} when its key already exists") @original_exception = original_exception end end class StaleObjectError < ConditionalCheckFailedException attr_reader :record, :attempted_action def initialize(record, attempted_action) super("Attempted to #{attempted_action} a stale object #{record}") @record = record @attempted_action = attempted_action end end class DocumentNotValid < Error def initialize(document) super("Validation failed: #{document.errors.full_messages.join(", ")}") end end class InvalidQuery < Error; end end end
Version data entries
5 entries across 5 versions & 2 rubygems