dball-mail 2.2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. data/CHANGELOG.rdoc +459 -0
  2. data/README.rdoc +582 -0
  3. data/Rakefile +66 -0
  4. data/TODO.rdoc +9 -0
  5. data/lib/VERSION +4 -0
  6. data/lib/mail/attachments_list.rb +105 -0
  7. data/lib/mail/body.rb +286 -0
  8. data/lib/mail/configuration.rb +71 -0
  9. data/lib/mail/core_extensions/nil.rb +11 -0
  10. data/lib/mail/core_extensions/string.rb +27 -0
  11. data/lib/mail/elements/address.rb +306 -0
  12. data/lib/mail/elements/address_list.rb +74 -0
  13. data/lib/mail/elements/content_disposition_element.rb +30 -0
  14. data/lib/mail/elements/content_location_element.rb +25 -0
  15. data/lib/mail/elements/content_transfer_encoding_element.rb +24 -0
  16. data/lib/mail/elements/content_type_element.rb +35 -0
  17. data/lib/mail/elements/date_time_element.rb +26 -0
  18. data/lib/mail/elements/envelope_from_element.rb +34 -0
  19. data/lib/mail/elements/message_ids_element.rb +29 -0
  20. data/lib/mail/elements/mime_version_element.rb +26 -0
  21. data/lib/mail/elements/phrase_list.rb +21 -0
  22. data/lib/mail/elements/received_element.rb +30 -0
  23. data/lib/mail/elements.rb +14 -0
  24. data/lib/mail/encodings/7bit.rb +31 -0
  25. data/lib/mail/encodings/8bit.rb +31 -0
  26. data/lib/mail/encodings/base64.rb +33 -0
  27. data/lib/mail/encodings/binary.rb +31 -0
  28. data/lib/mail/encodings/quoted_printable.rb +38 -0
  29. data/lib/mail/encodings/transfer_encoding.rb +58 -0
  30. data/lib/mail/encodings.rb +268 -0
  31. data/lib/mail/envelope.rb +35 -0
  32. data/lib/mail/field.rb +223 -0
  33. data/lib/mail/field_list.rb +33 -0
  34. data/lib/mail/fields/bcc_field.rb +56 -0
  35. data/lib/mail/fields/cc_field.rb +55 -0
  36. data/lib/mail/fields/comments_field.rb +41 -0
  37. data/lib/mail/fields/common/address_container.rb +16 -0
  38. data/lib/mail/fields/common/common_address.rb +125 -0
  39. data/lib/mail/fields/common/common_date.rb +42 -0
  40. data/lib/mail/fields/common/common_field.rb +50 -0
  41. data/lib/mail/fields/common/common_message_id.rb +44 -0
  42. data/lib/mail/fields/common/parameter_hash.rb +58 -0
  43. data/lib/mail/fields/content_description_field.rb +19 -0
  44. data/lib/mail/fields/content_disposition_field.rb +69 -0
  45. data/lib/mail/fields/content_id_field.rb +63 -0
  46. data/lib/mail/fields/content_location_field.rb +42 -0
  47. data/lib/mail/fields/content_transfer_encoding_field.rb +50 -0
  48. data/lib/mail/fields/content_type_field.rb +198 -0
  49. data/lib/mail/fields/date_field.rb +55 -0
  50. data/lib/mail/fields/from_field.rb +55 -0
  51. data/lib/mail/fields/in_reply_to_field.rb +55 -0
  52. data/lib/mail/fields/keywords_field.rb +44 -0
  53. data/lib/mail/fields/message_id_field.rb +83 -0
  54. data/lib/mail/fields/mime_version_field.rb +53 -0
  55. data/lib/mail/fields/optional_field.rb +13 -0
  56. data/lib/mail/fields/received_field.rb +67 -0
  57. data/lib/mail/fields/references_field.rb +55 -0
  58. data/lib/mail/fields/reply_to_field.rb +55 -0
  59. data/lib/mail/fields/resent_bcc_field.rb +55 -0
  60. data/lib/mail/fields/resent_cc_field.rb +55 -0
  61. data/lib/mail/fields/resent_date_field.rb +35 -0
  62. data/lib/mail/fields/resent_from_field.rb +55 -0
  63. data/lib/mail/fields/resent_message_id_field.rb +34 -0
  64. data/lib/mail/fields/resent_sender_field.rb +62 -0
  65. data/lib/mail/fields/resent_to_field.rb +55 -0
  66. data/lib/mail/fields/return_path_field.rb +64 -0
  67. data/lib/mail/fields/sender_field.rb +67 -0
  68. data/lib/mail/fields/structured_field.rb +51 -0
  69. data/lib/mail/fields/subject_field.rb +16 -0
  70. data/lib/mail/fields/to_field.rb +55 -0
  71. data/lib/mail/fields/unstructured_field.rb +179 -0
  72. data/lib/mail/fields.rb +35 -0
  73. data/lib/mail/header.rb +264 -0
  74. data/lib/mail/mail.rb +255 -0
  75. data/lib/mail/message.rb +1972 -0
  76. data/lib/mail/network/delivery_methods/file_delivery.rb +40 -0
  77. data/lib/mail/network/delivery_methods/sendmail.rb +62 -0
  78. data/lib/mail/network/delivery_methods/smtp.rb +136 -0
  79. data/lib/mail/network/delivery_methods/test_mailer.rb +40 -0
  80. data/lib/mail/network/retriever_methods/imap.rb +213 -0
  81. data/lib/mail/network/retriever_methods/pop3.rb +194 -0
  82. data/lib/mail/network/retriever_methods/test_retriever.rb +31 -0
  83. data/lib/mail/network.rb +10 -0
  84. data/lib/mail/parsers/address_lists.rb +64 -0
  85. data/lib/mail/parsers/address_lists.treetop +19 -0
  86. data/lib/mail/parsers/content_disposition.rb +535 -0
  87. data/lib/mail/parsers/content_disposition.treetop +46 -0
  88. data/lib/mail/parsers/content_location.rb +139 -0
  89. data/lib/mail/parsers/content_location.treetop +20 -0
  90. data/lib/mail/parsers/content_transfer_encoding.rb +162 -0
  91. data/lib/mail/parsers/content_transfer_encoding.treetop +20 -0
  92. data/lib/mail/parsers/content_type.rb +967 -0
  93. data/lib/mail/parsers/content_type.treetop +68 -0
  94. data/lib/mail/parsers/date_time.rb +114 -0
  95. data/lib/mail/parsers/date_time.treetop +11 -0
  96. data/lib/mail/parsers/envelope_from.rb +194 -0
  97. data/lib/mail/parsers/envelope_from.treetop +32 -0
  98. data/lib/mail/parsers/message_ids.rb +45 -0
  99. data/lib/mail/parsers/message_ids.treetop +15 -0
  100. data/lib/mail/parsers/mime_version.rb +144 -0
  101. data/lib/mail/parsers/mime_version.treetop +19 -0
  102. data/lib/mail/parsers/phrase_lists.rb +45 -0
  103. data/lib/mail/parsers/phrase_lists.treetop +15 -0
  104. data/lib/mail/parsers/received.rb +71 -0
  105. data/lib/mail/parsers/received.treetop +11 -0
  106. data/lib/mail/parsers/rfc2045.rb +464 -0
  107. data/lib/mail/parsers/rfc2045.treetop +36 -0
  108. data/lib/mail/parsers/rfc2822.rb +5318 -0
  109. data/lib/mail/parsers/rfc2822.treetop +410 -0
  110. data/lib/mail/parsers/rfc2822_obsolete.rb +3757 -0
  111. data/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
  112. data/lib/mail/part.rb +116 -0
  113. data/lib/mail/parts_list.rb +43 -0
  114. data/lib/mail/patterns.rb +34 -0
  115. data/lib/mail/utilities.rb +211 -0
  116. data/lib/mail/version.rb +24 -0
  117. data/lib/mail/version_specific/ruby_1_8.rb +97 -0
  118. data/lib/mail/version_specific/ruby_1_9.rb +87 -0
  119. data/lib/mail.rb +80 -0
  120. data/lib/tasks/corpus.rake +125 -0
  121. data/lib/tasks/treetop.rake +10 -0
  122. metadata +255 -0
@@ -0,0 +1,139 @@
1
+ # Autogenerated from a Treetop grammar. Edits may be lost.
2
+
3
+
4
+ module Mail
5
+ module ContentLocation
6
+ include Treetop::Runtime
7
+
8
+ def root
9
+ @root ||= :primary
10
+ end
11
+
12
+ include RFC2822
13
+
14
+ include RFC2045
15
+
16
+ module Primary0
17
+ def CFWS1
18
+ elements[0]
19
+ end
20
+
21
+ def location
22
+ elements[1]
23
+ end
24
+
25
+ def CFWS2
26
+ elements[2]
27
+ end
28
+ end
29
+
30
+ def _nt_primary
31
+ start_index = index
32
+ if node_cache[:primary].has_key?(index)
33
+ cached = node_cache[:primary][index]
34
+ if cached
35
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
36
+ @index = cached.interval.end
37
+ end
38
+ return cached
39
+ end
40
+
41
+ i0, s0 = index, []
42
+ r1 = _nt_CFWS
43
+ s0 << r1
44
+ if r1
45
+ r2 = _nt_location
46
+ s0 << r2
47
+ if r2
48
+ r3 = _nt_CFWS
49
+ s0 << r3
50
+ end
51
+ end
52
+ if s0.last
53
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
54
+ r0.extend(Primary0)
55
+ else
56
+ @index = i0
57
+ r0 = nil
58
+ end
59
+
60
+ node_cache[:primary][start_index] = r0
61
+
62
+ r0
63
+ end
64
+
65
+ module Location0
66
+ def text_value
67
+ quoted_content.text_value
68
+ end
69
+ end
70
+
71
+ def _nt_location
72
+ start_index = index
73
+ if node_cache[:location].has_key?(index)
74
+ cached = node_cache[:location][index]
75
+ if cached
76
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
77
+ @index = cached.interval.end
78
+ end
79
+ return cached
80
+ end
81
+
82
+ i0 = index
83
+ r1 = _nt_quoted_string
84
+ r1.extend(Location0)
85
+ if r1
86
+ r0 = r1
87
+ else
88
+ s2, i2 = [], index
89
+ loop do
90
+ i3 = index
91
+ r4 = _nt_token
92
+ if r4
93
+ r3 = r4
94
+ else
95
+ if has_terminal?('\G[\\x3d]', true, index)
96
+ r5 = true
97
+ @index += 1
98
+ else
99
+ r5 = nil
100
+ end
101
+ if r5
102
+ r3 = r5
103
+ else
104
+ @index = i3
105
+ r3 = nil
106
+ end
107
+ end
108
+ if r3
109
+ s2 << r3
110
+ else
111
+ break
112
+ end
113
+ end
114
+ if s2.empty?
115
+ @index = i2
116
+ r2 = nil
117
+ else
118
+ r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
119
+ end
120
+ if r2
121
+ r0 = r2
122
+ else
123
+ @index = i0
124
+ r0 = nil
125
+ end
126
+ end
127
+
128
+ node_cache[:location][start_index] = r0
129
+
130
+ r0
131
+ end
132
+
133
+ end
134
+
135
+ class ContentLocationParser < Treetop::Runtime::CompiledParser
136
+ include ContentLocation
137
+ end
138
+
139
+ end
@@ -0,0 +1,20 @@
1
+ module Mail
2
+ grammar ContentLocation
3
+
4
+ include RFC2822
5
+ include RFC2045
6
+
7
+ rule primary
8
+ CFWS location CFWS
9
+ end
10
+
11
+ rule location
12
+ quoted_string {
13
+ def text_value
14
+ quoted_content.text_value
15
+ end
16
+ } / (token / [\x3d])+
17
+ end
18
+
19
+ end
20
+ end
@@ -0,0 +1,162 @@
1
+ # Autogenerated from a Treetop grammar. Edits may be lost.
2
+
3
+
4
+ module Mail
5
+ module ContentTransferEncoding
6
+ include Treetop::Runtime
7
+
8
+ def root
9
+ @root ||= :primary
10
+ end
11
+
12
+ include RFC2822
13
+
14
+ include RFC2045
15
+
16
+ module Primary0
17
+ def CFWS1
18
+ elements[0]
19
+ end
20
+
21
+ def encoding
22
+ elements[1]
23
+ end
24
+
25
+ def CFWS2
26
+ elements[2]
27
+ end
28
+
29
+ def CFWS3
30
+ elements[4]
31
+ end
32
+ end
33
+
34
+ def _nt_primary
35
+ start_index = index
36
+ if node_cache[:primary].has_key?(index)
37
+ cached = node_cache[:primary][index]
38
+ if cached
39
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
40
+ @index = cached.interval.end
41
+ end
42
+ return cached
43
+ end
44
+
45
+ i0, s0 = index, []
46
+ r1 = _nt_CFWS
47
+ s0 << r1
48
+ if r1
49
+ r2 = _nt_encoding
50
+ s0 << r2
51
+ if r2
52
+ r3 = _nt_CFWS
53
+ s0 << r3
54
+ if r3
55
+ if has_terminal?(";", false, index)
56
+ r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
57
+ @index += 1
58
+ else
59
+ terminal_parse_failure(";")
60
+ r5 = nil
61
+ end
62
+ if r5
63
+ r4 = r5
64
+ else
65
+ r4 = instantiate_node(SyntaxNode,input, index...index)
66
+ end
67
+ s0 << r4
68
+ if r4
69
+ r6 = _nt_CFWS
70
+ s0 << r6
71
+ end
72
+ end
73
+ end
74
+ end
75
+ if s0.last
76
+ r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
77
+ r0.extend(Primary0)
78
+ else
79
+ @index = i0
80
+ r0 = nil
81
+ end
82
+
83
+ node_cache[:primary][start_index] = r0
84
+
85
+ r0
86
+ end
87
+
88
+ module Encoding0
89
+ def ietf_token
90
+ elements[0]
91
+ end
92
+
93
+ end
94
+
95
+ module Encoding1
96
+ def text_value
97
+ ietf_token.text_value
98
+ end
99
+ end
100
+
101
+ def _nt_encoding
102
+ start_index = index
103
+ if node_cache[:encoding].has_key?(index)
104
+ cached = node_cache[:encoding][index]
105
+ if cached
106
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
107
+ @index = cached.interval.end
108
+ end
109
+ return cached
110
+ end
111
+
112
+ i0 = index
113
+ i1, s1 = index, []
114
+ r2 = _nt_ietf_token
115
+ s1 << r2
116
+ if r2
117
+ if has_terminal?("s", false, index)
118
+ r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
119
+ @index += 1
120
+ else
121
+ terminal_parse_failure("s")
122
+ r4 = nil
123
+ end
124
+ if r4
125
+ r3 = r4
126
+ else
127
+ r3 = instantiate_node(SyntaxNode,input, index...index)
128
+ end
129
+ s1 << r3
130
+ end
131
+ if s1.last
132
+ r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
133
+ r1.extend(Encoding0)
134
+ r1.extend(Encoding1)
135
+ else
136
+ @index = i1
137
+ r1 = nil
138
+ end
139
+ if r1
140
+ r0 = r1
141
+ else
142
+ r5 = _nt_custom_x_token
143
+ if r5
144
+ r0 = r5
145
+ else
146
+ @index = i0
147
+ r0 = nil
148
+ end
149
+ end
150
+
151
+ node_cache[:encoding][start_index] = r0
152
+
153
+ r0
154
+ end
155
+
156
+ end
157
+
158
+ class ContentTransferEncodingParser < Treetop::Runtime::CompiledParser
159
+ include ContentTransferEncoding
160
+ end
161
+
162
+ end
@@ -0,0 +1,20 @@
1
+ module Mail
2
+ grammar ContentTransferEncoding
3
+
4
+ include RFC2822
5
+ include RFC2045
6
+
7
+ rule primary
8
+ CFWS encoding CFWS ";"? CFWS
9
+ end
10
+
11
+ rule encoding
12
+ ietf_token "s"? {
13
+ def text_value
14
+ ietf_token.text_value
15
+ end
16
+ } / custom_x_token
17
+ end
18
+
19
+ end
20
+ end