I am building a Ruby gem that implements the Composition design pattern. The tree-structure has 3 levels in the hierarchy: Trunk, Branch, Leaf. Branch and Leaf each have a r