
|
# File lib/rmail/address.rb, line 201
def format
display_name = if @display_name.nil?
nil
elsif @display_name =~ /^[-\/\w=!#\$%&'*+?^`{|}~ ]+$/
@display_name
else
'"' + @display_name.gsub(/["\\]/, '\\\\\&') + '"'
end
local = if (@local !~ /^[-\w=!#\$%&'*+?^`{|}~\.\/]+$/ ||
@local =~ /^\./ ||
@local =~ /\.$/ ||
@local =~ /\.\./)
'"' + @local.gsub(/["\\]/, '\\\\\&') + '"'
else
@local
end
domain = if (!@domain.nil? and
(@domain !~ /^[-\w=!#\$%&'*+?^`{|}~\.\/]+$/ ||
@domain =~ /^\./ ||
@domain =~ /\.$/ ||
@domain =~ /\.\./))
then
'[' + if @domain =~ /^\[(.*)\]$/
$1
else
@domain
end.gsub(/[\[\]\\]/, '\\\\\&') + ']'
else
@domain
end
address = if domain.nil?
local
elsif !display_name.nil? or domain[-1] == ?]
'<' + local + '@' + domain + '>'
else
local + '@' + domain
end
comments = nil
comments = unless @comments.nil?
@comments.collect { |c|
'(' + c.gsub(/[()\\]/, '\\\\\&') + ')'
}.join(' ')
end
[display_name, address, comments].compact.join(' ')
end
|