# File lib/amq/protocol/client.rb, line 1467
      def self.encode_properties(body_size, properties)
        pieces, flags = [], 0

        properties.reject {|key, value| value.nil?}.each do |key, value|
          i, f, result = self.__send__("encode_#{key}""encode_#{key}", value)
          flags |= f
          pieces[i] = result
        end

        # result = [60, 0, body_size, flags].pack('n2Qn')
        result = [60, 0].pack(PACK_UINT16_X2)
        result += AMQ::Hacks.pack_64_big_endian(body_size)
        result += [flags].pack(PACK_UINT16)
        result + pieces.join(EMPTY_STRING)
      end