Mega Code Archive

 
Categories / Ruby / Collections
 

Writing an Iterator Over a Data Structure

class Tree   attr_reader :value   def initialize(value)     @value = value     @children = []   end   def <<(value)     subtree = Tree.new(value)     @children << subtree     return subtree   end end t = Tree.new("Parent") puts child1 = t << "Child 1" puts child1 << "Grandchild 1.1" puts child1 << "Grandchild 1.2" puts child2 = t << "Child 2" puts child2 << "Grandchild 2.1"