module ActsAsTree::TreeWalker
def walk_tree_dfs(where = {}, node = nil, level = -1, &block)
def walk_tree_dfs(where = {}, node = nil, level = -1, &block) yield(node, level) unless level == -1 nodes = (node.nil? ? roots : node.children).where(where) nodes.each { |child| walk_tree_dfs where, child, level + 1, &block } end