lib/dry/struct/errors.rb in dry-struct-1.2.0 vs lib/dry/struct/errors.rb in dry-struct-1.3.0

- old
+ new

@@ -1,22 +1,32 @@ +# frozen_string_literal: true + module Dry class Struct # Raised when given input doesn't conform schema and constructor type Error = Class.new(TypeError) # Raised when defining duplicate attributes - class RepeatedAttributeError < ArgumentError + class RepeatedAttributeError < ::ArgumentError # @param [Symbol] key # attribute name that is the same as previously defined one def initialize(key) super("Attribute :#{key} has already been defined") end end # Raised when a struct doesn't have an attribute - class MissingAttributeError < KeyError + class MissingAttributeError < ::KeyError def initialize(key) - super("Missing attribute: #{ key.inspect }") + super("Missing attribute: #{key.inspect}") + end + end + + # When struct class stored in ast was garbage collected because no alive objects exists + # This shouldn't happen in a working application + class RecycledStructError < ::RuntimeError + def initialize + super('Reference to struct class was garbage collected') end end end end