Sha256: 678d7069ce857bb76f6f2780c69366756d95bd22ae0b093b1aa0d45ed06ad916

Contents?: true

Size: 548 Bytes

Versions: 2

Compression:

Stored size: 548 Bytes

Contents

module NxtSchema
  module Template
    class MaybeEvaluator
      def initialize(value:)
        @value = value
      end

      def call(target = nil, *args)
        evaluator = evaluator(target, *args)

        if evaluator.value?
          # When a value was given we check if this equals to the input
          evaluator.call == target
        else
          evaluator.call
        end
      end

      private

      def evaluator(target, *args)
        Callable.new(value, target, *args)
      end

      attr_reader :value
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nxt_schema-1.0.2 lib/nxt_schema/template/maybe_evaluator.rb
nxt_schema-1.0.1 lib/nxt_schema/template/maybe_evaluator.rb