class Net::IMAP::ClientID

:nodoc:

def format_internal(client_id)

def format_internal(client_id)
  return nil if client_id.nil?
  client_id.to_h.flat_map {|k,v|
    [StringFormatter.string(k), StringFormatter.nstring(v)]
  }
end

def initialize(data)

def initialize(data)
  @data = data
end

def send_data(imap, tag)

def send_data(imap, tag)
  imap.__send__(:send_data, format_internal(@data), tag)
end

def validate

def validate
  validate_internal(@data)
end

def validate_internal(client_id)

def validate_internal(client_id)
  client_id.to_h.each do |k,v|
    unless StringFormatter.valid_string?(k)
      raise DataFormatError, client_id.inspect
    end
  end
rescue NoMethodError, TypeError # to_h failed
  raise DataFormatError, client_id.inspect
end