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 67
67: def internal_new( name, conf )
68: FNAME_TO_CLASS[name].newobj('', conf, true)
69: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 73
73: def initialize( body, conf, intern = false )
74: @body = body
75: @config = conf
76:
77: @illegal = false
78: @parsed = false
79: if intern
80: @parsed = true
81: parse_init
82: end
83: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 47
47: def new( name, body, conf = DEFAULT_CONFIG )
48: klass = FNAME_TO_CLASS[name.downcase] || UnstructuredHeader
49: klass.newobj body, conf
50: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 52
52: def new_from_port( port, name, conf = DEFAULT_CONFIG )
53: re = Regep.new('\A(' + Regexp.quote(name) + '):', 'i')
54: str = nil
55: port.ropen {|f|
56: f.each do |line|
57: if m = re.match(line) then str = m.post_match.strip
58: elsif str and /\A[\t ]/ === line then str << ' ' << line.strip
59: elsif /\A-*\s*\z/ === line then break
60: elsif str then break
61: end
62: end
63: }
64: new(name, str, Config.to_config(conf))
65: end
Public Instance methods
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 132
132: def accept( strategy, dummy1 = nil, dummy2 = nil )
133: ensure_parsed
134: do_accept strategy
135: strategy.terminate
136: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 117
117: def body
118: ensure_parsed
119: v = Decoder.new(s = '')
120: do_accept v
121: v.terminate
122: s
123: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 125
125: def body=( str )
126: @body = str
127: clear_parse_status
128: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 93
93: def empty?
94: ensure_parsed
95: return true if @illegal
96: isempty?
97: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 89
89: def illegal?
90: @illegal
91: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 85
85: def inspect
86: "#<#{self.class} #{@body.inspect}>"
87: end
Private Instance methods
defabstract parse end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 110
110: def clear_parse_status
111: @parsed = false
112: @illegal = false
113: end
[ show source ]
# File lib/action_mailer/vendor/tmail/header.rb, line 101
101: def ensure_parsed
102: return if @parsed
103: @parsed = true
104: parse
105: end