module ActsAsTree::TreeView
def tree_view(label_method = :to_s, node = nil, level = -1)
|_ subchild4
|_ subchild3
|_ child2
| |_ subchild2
| |_ subchild1
|_ child1
root
Example:
show records in a tree view
def tree_view(label_method = :to_s, node = nil, level = -1) if node.nil? puts "root" nodes = roots else label = "|_ #{node.send(label_method)}" if level == 0 puts " #{label}" else puts " |#{" "*level}#{label}" end nodes = node.children end nodes.each do |child| tree_view(label_method, child, level+1) end end