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