Sha256: 7ccbab21251c4cb70b078b89e029d0666c6832561fb344bb306eb232414fe2c4
Contents?: true
Size: 667 Bytes
Versions: 3
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.is_a?(Identifier) || 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
dentaku-2.0.4 | lib/dentaku/ast/combinators.rb |
dentaku-2.0.3 | lib/dentaku/ast/combinators.rb |
dentaku-2.0.2 | lib/dentaku/ast/combinators.rb |