Methods
- accept
- body
- body=
- clear_parse_status
- empty?
- ensure_parsed
- illegal?
- inspect
- internal_new
- new
- new
- new_from_port
Included Modules
Constants
| FNAME_TO_CLASS | = | { 'date' => DateTimeHeader, 'resent-date' => DateTimeHeader, 'to' => AddressHeader, 'cc' => AddressHeader, 'bcc' => AddressHeader, 'from' => AddressHeader, 'reply-to' => AddressHeader, 'resent-to' => AddressHeader, 'resent-cc' => AddressHeader, 'resent-bcc' => AddressHeader, 'resent-from' => AddressHeader, 'resent-reply-to' => AddressHeader, 'sender' => SingleAddressHeader, 'resent-sender' => SingleAddressHeader, 'return-path' => ReturnPathHeader, 'message-id' => MessageIdHeader, 'resent-message-id' => MessageIdHeader, 'in-reply-to' => ReferencesHeader, 'received' => ReceivedHeader, 'references' => ReferencesHeader, 'keywords' => KeywordsHeader, 'encrypted' => EncryptedHeader, 'mime-version' => MimeVersionHeader, 'content-type' => ContentTypeHeader, 'content-transfer-encoding' => ContentTransferEncodingHeader, 'content-disposition' => ContentDispositionHeader, 'content-id' => MessageIdHeader, 'subject' => UnstructuredHeader, 'comments' => UnstructuredHeader, 'content-description' => UnstructuredHeader |
Public Class methods
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 48
48: def internal_new( name, conf )
49: FNAME_TO_CLASS[name].newobj('', conf, true)
50: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 54
54: def initialize( body, conf, intern = false )
55: @body = body
56: @config = conf
57:
58: @illegal = false
59: @parsed = false
60: if intern
61: @parsed = true
62: parse_init
63: end
64: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 28
28: def new( name, body, conf = DEFAULT_CONFIG )
29: klass = FNAME_TO_CLASS[name.downcase] || UnstructuredHeader
30: klass.newobj body, conf
31: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 33
33: def new_from_port( port, name, conf = DEFAULT_CONFIG )
34: re = Regep.new('\A(' + Regexp.quote(name) + '):', 'i')
35: str = nil
36: port.ropen {|f|
37: f.each do |line|
38: if m = re.match(line) then str = m.post_match.strip
39: elsif str and /\A[\t ]/ === line then str << ' ' << line.strip
40: elsif /\A-*\s*\z/ === line then break
41: elsif str then break
42: end
43: end
44: }
45: new(name, str, Config.to_config(conf))
46: end
Public Instance methods
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 113
113: def accept( strategy, dummy1 = nil, dummy2 = nil )
114: ensure_parsed
115: do_accept strategy
116: strategy.terminate
117: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 98
98: def body
99: ensure_parsed
100: v = Decoder.new(s = '')
101: do_accept v
102: v.terminate
103: s
104: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 106
106: def body=( str )
107: @body = str
108: clear_parse_status
109: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 74
74: def empty?
75: ensure_parsed
76: return true if @illegal
77: isempty?
78: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 70
70: def illegal?
71: @illegal
72: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 66
66: def inspect
67: "#<#{self.class} #{@body.inspect}>"
68: end
Private Instance methods
defabstract parse end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 91
91: def clear_parse_status
92: @parsed = false
93: @illegal = false
94: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 82
82: def ensure_parsed
83: return if @parsed
84: @parsed = true
85: parse
86: end