21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/mail/jenc/encoder.rb', line 21
def encode_to_hash(name, key: 'filename', charset: 'utf-8')
hexes = name.unpack('H*')[0].scan(/.{2}/).map { |hex| "%#{hex.upcase}" }
first_hex_num = hex_num(charset.size + key.size + 3)
if hexes.size <= first_hex_num
params = { "#{key}*" => "#{charset.downcase}''#{hexes.join}" }
else
params = { "#{key}*0*" => "#{charset.downcase}''#{hexes.shift(first_hex_num).join}" }
slices = hexes.each_slice(hex_num(key.size + 3))
slices.each_with_index do |sliced, i|
kc = "#{key}*#{i+1}*"
params[kc] = sliced.join
end
end
params
end
|