class Hash def execute value=nil self.each{|k,v| v.update if v.respond_to?(:update) if(v.is_a?(Array) && v.length==0) self.delete k else #puts "executing #{k}" v.execute(value) if v.respond_to?(:execute) end } end def to_html [ '
', map { |k, v| ["
#{k}", v.respond_to?(:to_html) ? v.to_html : "#{v}

"] }, '
' ].join end end