# File lib/amq/protocol/table.rb, line 33 def self.encode(table) buffer = String.new table ||= {} table.each do |key, value| key = key.to_s # it can be a symbol as well buffer << key.bytesize.chr + key case value when Hash then buffer << TYPE_HASH buffer << self.encode(value) else buffer << TableValueEncoder.encode(value) end end [buffer.bytesize].pack(PACK_UINT32) + buffer end