Sha256: e3a597f79cf9c62b7b2d529d06259c52fef90b096da13f7ae7f9c6c1fb6aefaa
Contents?: true
Size: 667 Bytes
Versions: 2
Compression:
Stored size: 667 Bytes
Contents
require_relative './operation' module Dentaku module AST class Combinator < Operation def initialize(*) super fail "#{ self.class } requires logical operands" unless valid_node?(left) && valid_node?(right) end def type :logical end private def valid_node?(node) node.dependencies.any? || node.type == :logical end end class And < Combinator def value(context={}) left.value(context) && right.value(context) end end class Or < Combinator def value(context={}) left.value(context) || right.value(context) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dentaku-2.0.6 | lib/dentaku/ast/combinators.rb |
dentaku-2.0.5 | lib/dentaku/ast/combinators.rb |