def encode(name, value)
return "#{name}:\n" if value.blank?
result = "#{name}:"
if value[-1, 1] == ' ' or binary_value?(value)
result << ":"
value = [value].pack("m").gsub(/\n/u, '')
end
result << " "
first_line_value_size = SIZE - result.size
if value.size > first_line_value_size
first_line_value = value[0, first_line_value_size]
rest_value = value[first_line_value_size..-1]
else
first_line_value = value
rest_value = nil
end
result << "#{first_line_value}\n"
return result if rest_value.nil?
rest_value.scan(/.{1,#{SIZE - 1}}/u).each do |line|
result << " #{line}\n"
end
result
end