class Gammo::XPath::AST::UnionExpr

@!visibility private

Public Instance Methods

evaluate(context) click to toggle source
# File lib/gammo/xpath/ast/expression.rb, line 210
def evaluate(context)
  cloned = context.clone
  left, right = @a.evaluate(context), @b.evaluate(cloned)
  left_node_set = left.to_node_set(context)
  right_node_set = right.to_node_set(cloned)

  duplicates = Set.new(left_node_set.nodes)
  right_node_set.each { |node| left_node_set << node if duplicates.add?(node) }
  left
end