lib/datacaster/comparator.rb in datacaster-2.0.2 vs lib/datacaster/comparator.rb in datacaster-3.0.0
- old
+ new
@@ -1,24 +1,24 @@
module Datacaster
class Comparator < Base
- def initialize(value, name, error = nil)
+ def initialize(value, error_key = nil)
@value = value
- @name = name
- @error = error || "must be equal to #{value.inspect}"
+
+ @error_keys = ['.compare', 'datacaster.errors.compare']
+ @error_keys.unshift(error_key) if error_key
end
- def cast(object)
- intermediary_result = super(object)
- object = intermediary_result.value
-
+ def cast(object, runtime:)
if @value == object
Datacaster.ValidResult(object)
else
- Datacaster.ErrorResult([@error])
+ Datacaster.ErrorResult(
+ I18nValues::Key.new(@error_keys, reference: @value.inspect, value: object)
+ )
end
end
def inspect
- "#<Datacaster::#{@name}Comparator>"
+ "#<Datacaster::Comparator>"
end
end
end