Sha256: 531ee98180add44a57edf2e7426faad85de5e23e8b228cb7b0787846b7560898

Contents?: true

Size: 551 Bytes

Versions: 1

Compression:

Stored size: 551 Bytes

Contents

module Datacaster
  class Comparator < Base
    def initialize(value, error_key = nil)
      @value = value

      @error_keys = ['.compare', 'datacaster.errors.compare']
      @error_keys.unshift(error_key) if error_key
    end

    def cast(object, runtime:)
      if @value == object
        Datacaster.ValidResult(object)
      else
        Datacaster.ErrorResult(
          I18nValues::Key.new(@error_keys, reference: @value.inspect, value: object)
        )
      end
    end

    def inspect
      "#<Datacaster::Comparator>"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
datacaster-3.0.0 lib/datacaster/comparator.rb