select_first(root)
public
Similar to #select but returns
the first matching element. Returns nil if no element matches the
selector.
Show source
def select_first(root)
stack = [root]
while node = stack.pop
if node.tag? && subset = match(node, true)
return subset.first if !subset.empty?
elsif children = node.children
stack.concat children.reverse
end
end
nil
end