module MenuTxt::Node
Attributes
children[R]
level[R]
name[R]
parent[R]
url[R]
Public Class Methods
new(name, url = '')
click to toggle source
# File lib/menu_txt/node.rb, line 5 def initialize(name, url = '') @name, @url, @parent, @children, @level = name, url, nil, [], -1 end
Public Instance Methods
<<(node)
click to toggle source
# File lib/menu_txt/node.rb, line 30 def <<(node) node.parent = self node.level = level + 1 children << node end
add_child(name, url)
click to toggle source
# File lib/menu_txt/node.rb, line 26 def add_child(name, url) self << self.class.new(name, url) end
leaf?()
click to toggle source
# File lib/menu_txt/node.rb, line 11 def leaf?; children.empty? end
traverse() { |self| ... }
click to toggle source
# File lib/menu_txt/node.rb, line 13 def traverse(&block) if block_given? yield(self) if parent children.each do |child| child.traverse(&block) end else enum_for end end
Also aliased as: each
Protected Instance Methods
level=(int)
click to toggle source
# File lib/menu_txt/node.rb, line 38 def level=(int) @level = int end
parent=(node)
click to toggle source
# File lib/menu_txt/node.rb, line 42 def parent=(node) @parent = node end