tree_node¶ ↑
Simple tree node implementation
Usage¶ ↑
require 'rubygems' require 'tree_node' class Link include Tree::Node attr_accessor :name, :id def initialize(name) @name = "#{name}" @id = Time.now.to_f * 1.0 end end grampa = Link.new(:grampa) father = Link.new(:father) uncle = Link.new(:uncle) first_son = Link.new(:first_son) second_son = Link.new(:second_son) daughter = Link.new(:daughter) first_cousin = Link.new(:first_cousin) second_cousin = Link.new(:second_cousin) great_grand_son = Link.new(:great_grand_son) grampa.add_child(father) father.add_child(first_son) father.add_child(second_son) father.add_child(daughter) grampa.add_child(uncle) uncle.add_child(first_cousin) uncle.add_child(second_cousin) second_cousin.add_child(great_grand_son) puts great_grand_son.root { |node| node.name } puts great_grand_son.map(:up) { |node| node.name }.inspect puts grampa.map(:down) { |node| node.name }.inspect
Output¶ ↑
grampa ["grampa", "uncle", "second_cousin", "great_grand_son"] ["grampa", "father", "first_son", "second_son", "daughter", "uncle", "first_cousin", "second_cousin", "great_grand_son"]
Copyright¶ ↑
Copyright © 2012 kazuyoshi tlacaelel. See LICENSE.txt for further details.