Collections Ruby

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"