lib/virtus/attribute/strict.rb
module Virtus
class Attribute
# Attribute extension which raises CoercionError when coercion failed
#
module Strict
# @see [Attribute#coerce]
#
# @raises [CoercionError] when coercer failed
#
# @api public
def coerce(*)
output = super
if value_coerced?(output) || !required? && output.nil?
output
else
raise CoercionError.new(output, self)
end
end
end # Strict
end # Attribute
end # Virtus