Sha256: 561d65f2db00727583cac911c1a3ac98fea763b56237602800fbb835bd3a96c7

Contents?: true

Size: 599 Bytes

Versions: 1

Compression:

Stored size: 599 Bytes

Contents

module Dry
  module Logic
    class Rule::Check < Rule
      attr_reader :keys

      class Unary < Rule::Check
        def evaluate_input(*)
          predicate.input
        end
      end

      class Binary < Rule::Check
        def evaluate_input(result)
          keys.map { |key| result[key].input }
        end
      end

      def initialize(name, predicate, keys)
        super(name, predicate)
        @keys = keys
      end

      def call(result)
        Logic.Result(evaluate_input(result), predicate.(result), self)
      end

      def type
        :check
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dry-logic-0.1.3 lib/dry/logic/rule/check.rb