class Dentaku::AST::Combinator

Public Class Methods

new(*) click to toggle source
Calls superclass method
# File lib/dentaku/ast/combinators.rb, line 6
def initialize(*)
  super

  unless valid_node?(left)
    raise NodeError.new(:logical, left.type, :left),
          "#{self.class} requires logical operands"
  end
  unless valid_node?(right)
    raise NodeError.new(:logical, right.type, :right),
          "#{self.class} requires logical operands"
  end
end

Public Instance Methods

type() click to toggle source
# File lib/dentaku/ast/combinators.rb, line 19
def type
  :logical
end

Private Instance Methods

valid_node?(node) click to toggle source
# File lib/dentaku/ast/combinators.rb, line 25
def valid_node?(node)
  node && (node.dependencies.any? || node.type == :logical)
end