def render options = {}
      validate!
      self.compose do
        # Allow 'yield' to embed all children
        self.children.each do |child|
          fragment child
        end
      end.render(options)
    end
def render options = {}
      validate!
      self.compose do
        # Allow 'yield' to embed all children
        self.children.each do |child|
          fragment child
        end
      end.render(options)
    end
You don't want to implement this function in your subclasses -
 just reimplement compose instead.

 This calls compose, provides the 'yield' magic, and callls render on
 the output.