Method: Fast.search
- Defined in:
- lib/fast.rb
.search(pattern, node, *args) { ... } ⇒ Object
Search recursively into a node and its children. If the node matches with the pattern it returns the node, otherwise it recursively collect possible children nodes
171 172 173 174 175 176 177 178 179 180 |
# File 'lib/fast.rb', line 171 def search(pattern, node, *args) if (match = match?(pattern, node, *args)) yield node, match if block_given? match != true ? [node, match] : [node] else node.each_child_node .flat_map { |child| search(pattern, child, *args) } .compact.flatten end end |