class HTML::Selector
def select_first(root)
Similar to #select but returns the first matching element. Returns +nil+
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