1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>format (RMail::Address)</title>
<link rel=StyleSheet href="../../.././rdoc-style.css" type="text/css" media="screen" />
</head>
<body bgcolor="white">
<pre><span class="cmt"># File lib/rmail/address.rb, line 223</span>
<span class="kw">def</span> format
display_name = <span class="kw">if</span> @display_name.nil?
<span class="kw">nil</span>
<span class="kw">elsif</span> @display_name =~ /^[-\/\w=!#\$%&'*+?^`{|}~ ]+$/
@display_name
<span class="kw">else</span>
<span class="str">'"'</span> + @display_name.gsub(<span class="re">/["\\]/</span>, <span class="str">'\\\\\&'</span>) + <span class="str">'"'</span>
<span class="kw">end</span>
local = <span class="kw">if</span> (@local !~ /^[-\w=!#\$%&'*+?^`{|}~\.\/]+$/ ||
@local =~ <span class="re">/^\./</span> ||
@local =~ <span class="re">/\.$/</span> ||
@local =~ <span class="re">/\.\./</span>)
<span class="str">'"'</span> + @local.gsub(<span class="re">/["\\]/</span>, <span class="str">'\\\\\&'</span>) + <span class="str">'"'</span>
<span class="kw">else</span>
@local
<span class="kw">end</span>
domain = <span class="kw">if</span> (!@domain.nil? <span class="kw">and</span>
(@domain !~ /^[-\w=!#\$%&'*+?^`{|}~\.\/]+$/ ||
@domain =~ <span class="re">/^\./</span> ||
@domain =~ <span class="re">/\.$/</span> ||
@domain =~ <span class="re">/\.\./</span>))
<span class="kw">then</span>
<span class="str">'['</span> + <span class="kw">if</span> @domain =~ <span class="re">/^\[(.*)\]$/</span>
$1
<span class="kw">else</span>
@domain
<span class="kw">end</span>.gsub(<span class="re">/[\[\]\\]/</span>, <span class="str">'\\\\\&'</span>) + <span class="str">']'</span>
<span class="kw">else</span>
@domain
<span class="kw">end</span>
address = <span class="kw">if</span> domain.nil?
local
<span class="kw">elsif</span> !display_name.nil? <span class="kw">or</span> domain[-1] == ?]
<span class="str">'<'</span> + local + <span class="str">'@'</span> + domain + <span class="str">'>'</span>
<span class="kw">else</span>
local + <span class="str">'@'</span> + domain
<span class="kw">end</span>
comments = <span class="kw">nil</span>
comments = <span class="kw">unless</span> @comments.nil?
@comments.collect { |c|
<span class="str">'('</span> + c.gsub(<span class="re">/[()\\]/</span>, <span class="str">'\\\\\&'</span>) + <span class="str">')'</span>
}.join(<span class="str">' '</span>)
<span class="kw">end</span>
[display_name, address, comments].compact.join(<span class="str">' '</span>)
<span class="kw">end</span></pre>
</body>
</html>
|