This method is deprecated or moved on the latest stable version.
The last existing version (v4.1.8) is shown here.
select(root)
public
Selects and returns an array with all matching elements, beginning with one
node and traversing through all children depth-first. Returns an empty
array if no match is found.
The root node may be any element in the document, or the document itself.
For example:
selector=HTML::Selector.new"input[type=text]"matches=selector.select(element)matches.eachdo|match|puts"Found text field with name #{match.attributes['name']}"end
# File actionview/lib/action_view/vendor/html-scanner/html/selector.rb, line 455
def select(root)
matches = []
stack = [root]
while node = stack.pop
if node.tag? && subset = match(node, false)
subset.each do |match|
matches << match unless matches.any? { |item| item.equal?(match) }
end
elsif children = node.children
stack.concat children.reverse
end
end
matches
end