lib/koine/attributes/adapter/base.rb in koine-attributes-1.0.0 vs lib/koine/attributes/adapter/base.rb in koine-attributes-1.1.0

- old
+ new

@@ -1,9 +1,15 @@ module Koine module Attributes module Adapter class Base + attr_accessor :attribute_name + + def initialize + @attribute_name = 'AnonymousAttribute' + end + def coerce(value) return coerce_nil if value.nil? coerce_not_nil(value) end @@ -32,11 +38,11 @@ def coerce_nil if @nil_value_set return @nil_value.respond_to?(:call) ? @nil_value.call : @nil_value end - raise ArgumentError, 'Cannot be nil' + raise ArgumentError, 'Cannot be nil', attribute_name end def coerce_not_nil(_value) raise NotImplementedError end @@ -48,9 +54,15 @@ unless value.is_a?(::Symbol) value = value.dup if value.respond_to?(:dup) end value.freeze + end + + def wrap_errors + yield + rescue StandardError => error + raise Koine::Attributes::ArgumentError.new(error, attribute_name) end end end end end