class XPath::PrecedingIterator

Public Instance Methods

each(node, visitor) { |a| ... } click to toggle source
# File lib/xml/xpath.rb, line 2671
def each(node, visitor)
  while parent = (adaptor = visitor.visit(node)).parent
    adaptor.each_preceding_siblings { |i|
      stack = visitor.visit(i).children.dup
      while node = stack.pop
        a = visitor.visit(node)
        stack.concat a.children
        yield a
      end
      yield visitor.visit(i)
    }
    node = parent
  end
end