From: Raul Parolari Date: 2007-11-14T11:54:15+09:00 Subject: Re: recursion with blocks James Gray wrote: > > Does this give you some ideas? > > class Tree > def initialize(name) > @name = name > @leaves = Array.new > end > > attr_reader :name > > def <<(leaf_name) > @leaves << self.class.new(leaf_name) > self > end > .. I played with this Tree for a while (amazed by its simplicity and functionality); just a small problem when connecting (and printing) Trees to each other. A small touch to the << method does it: def <<(leaf_name) case leaf_name when String @leaves << self.class.new(leaf_name) when Tree @leaves << leaf_name else raise end self end -- Posted via http://www.ruby-forum.com/.