mail 2.6.1 → 2.8.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 (188) hide show
  1. checksums.yaml +5 -5
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +150 -107
  4. data/lib/mail/attachments_list.rb +13 -10
  5. data/lib/mail/body.rb +104 -90
  6. data/lib/mail/check_delivery_params.rb +55 -10
  7. data/lib/mail/configuration.rb +3 -0
  8. data/lib/mail/constants.rb +79 -0
  9. data/lib/mail/elements/address.rb +96 -108
  10. data/lib/mail/elements/address_list.rb +13 -30
  11. data/lib/mail/elements/content_disposition_element.rb +10 -16
  12. data/lib/mail/elements/content_location_element.rb +9 -13
  13. data/lib/mail/elements/content_transfer_encoding_element.rb +7 -11
  14. data/lib/mail/elements/content_type_element.rb +17 -23
  15. data/lib/mail/elements/date_time_element.rb +8 -15
  16. data/lib/mail/elements/envelope_from_element.rb +23 -23
  17. data/lib/mail/elements/message_ids_element.rb +22 -15
  18. data/lib/mail/elements/mime_version_element.rb +8 -15
  19. data/lib/mail/elements/phrase_list.rb +13 -10
  20. data/lib/mail/elements/received_element.rb +28 -19
  21. data/lib/mail/elements.rb +1 -0
  22. data/lib/mail/encodings/7bit.rb +10 -14
  23. data/lib/mail/encodings/8bit.rb +5 -18
  24. data/lib/mail/encodings/base64.rb +15 -10
  25. data/lib/mail/encodings/binary.rb +4 -22
  26. data/lib/mail/encodings/identity.rb +24 -0
  27. data/lib/mail/encodings/quoted_printable.rb +13 -7
  28. data/lib/mail/encodings/transfer_encoding.rb +47 -28
  29. data/lib/mail/encodings/unix_to_unix.rb +20 -0
  30. data/lib/mail/encodings.rb +102 -92
  31. data/lib/mail/envelope.rb +12 -14
  32. data/lib/mail/field.rb +121 -85
  33. data/lib/mail/field_list.rb +62 -8
  34. data/lib/mail/fields/bcc_field.rb +42 -48
  35. data/lib/mail/fields/cc_field.rb +29 -50
  36. data/lib/mail/fields/comments_field.rb +28 -37
  37. data/lib/mail/fields/common_address_field.rb +170 -0
  38. data/lib/mail/fields/common_date_field.rb +58 -0
  39. data/lib/mail/fields/common_field.rb +77 -0
  40. data/lib/mail/fields/common_message_id_field.rb +42 -0
  41. data/lib/mail/fields/content_description_field.rb +8 -14
  42. data/lib/mail/fields/content_disposition_field.rb +20 -44
  43. data/lib/mail/fields/content_id_field.rb +25 -51
  44. data/lib/mail/fields/content_location_field.rb +12 -25
  45. data/lib/mail/fields/content_transfer_encoding_field.rb +32 -31
  46. data/lib/mail/fields/content_type_field.rb +51 -80
  47. data/lib/mail/fields/date_field.rb +24 -52
  48. data/lib/mail/fields/from_field.rb +29 -50
  49. data/lib/mail/fields/in_reply_to_field.rb +39 -49
  50. data/lib/mail/fields/keywords_field.rb +19 -32
  51. data/lib/mail/fields/message_id_field.rb +26 -71
  52. data/lib/mail/fields/mime_version_field.rb +20 -30
  53. data/lib/mail/fields/named_structured_field.rb +11 -0
  54. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  55. data/lib/mail/fields/optional_field.rb +10 -7
  56. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +16 -13
  57. data/lib/mail/fields/received_field.rb +44 -57
  58. data/lib/mail/fields/references_field.rb +36 -49
  59. data/lib/mail/fields/reply_to_field.rb +29 -50
  60. data/lib/mail/fields/resent_bcc_field.rb +29 -50
  61. data/lib/mail/fields/resent_cc_field.rb +29 -50
  62. data/lib/mail/fields/resent_date_field.rb +6 -30
  63. data/lib/mail/fields/resent_from_field.rb +29 -50
  64. data/lib/mail/fields/resent_message_id_field.rb +6 -29
  65. data/lib/mail/fields/resent_sender_field.rb +28 -57
  66. data/lib/mail/fields/resent_to_field.rb +29 -50
  67. data/lib/mail/fields/return_path_field.rb +51 -55
  68. data/lib/mail/fields/sender_field.rb +35 -56
  69. data/lib/mail/fields/structured_field.rb +4 -30
  70. data/lib/mail/fields/subject_field.rb +10 -11
  71. data/lib/mail/fields/to_field.rb +29 -50
  72. data/lib/mail/fields/unstructured_field.rb +36 -50
  73. data/lib/mail/fields.rb +1 -0
  74. data/lib/mail/header.rb +73 -110
  75. data/lib/mail/indifferent_hash.rb +1 -0
  76. data/lib/mail/mail.rb +6 -11
  77. data/lib/mail/matchers/attachment_matchers.rb +44 -0
  78. data/lib/mail/matchers/has_sent_mail.rb +53 -9
  79. data/lib/mail/message.rb +132 -136
  80. data/lib/mail/multibyte/chars.rb +24 -180
  81. data/lib/mail/multibyte/unicode.rb +31 -26
  82. data/lib/mail/multibyte/utils.rb +27 -43
  83. data/lib/mail/multibyte.rb +56 -16
  84. data/lib/mail/network/delivery_methods/exim.rb +9 -11
  85. data/lib/mail/network/delivery_methods/file_delivery.rb +14 -16
  86. data/lib/mail/network/delivery_methods/logger_delivery.rb +34 -0
  87. data/lib/mail/network/delivery_methods/sendmail.rb +68 -24
  88. data/lib/mail/network/delivery_methods/smtp.rb +77 -54
  89. data/lib/mail/network/delivery_methods/smtp_connection.rb +5 -9
  90. data/lib/mail/network/delivery_methods/test_mailer.rb +9 -9
  91. data/lib/mail/network/retriever_methods/base.rb +9 -8
  92. data/lib/mail/network/retriever_methods/imap.rb +21 -7
  93. data/lib/mail/network/retriever_methods/pop3.rb +6 -3
  94. data/lib/mail/network/retriever_methods/test_retriever.rb +4 -2
  95. data/lib/mail/network.rb +2 -0
  96. data/lib/mail/parser_tools.rb +15 -0
  97. data/lib/mail/parsers/address_lists_parser.rb +33226 -116
  98. data/lib/mail/parsers/address_lists_parser.rl +179 -0
  99. data/lib/mail/parsers/content_disposition_parser.rb +883 -49
  100. data/lib/mail/parsers/content_disposition_parser.rl +89 -0
  101. data/lib/mail/parsers/content_location_parser.rb +810 -23
  102. data/lib/mail/parsers/content_location_parser.rl +78 -0
  103. data/lib/mail/parsers/content_transfer_encoding_parser.rb +510 -21
  104. data/lib/mail/parsers/content_transfer_encoding_parser.rl +71 -0
  105. data/lib/mail/parsers/content_type_parser.rb +1031 -47
  106. data/lib/mail/parsers/content_type_parser.rl +90 -0
  107. data/lib/mail/parsers/date_time_parser.rb +879 -24
  108. data/lib/mail/parsers/date_time_parser.rl +69 -0
  109. data/lib/mail/parsers/envelope_from_parser.rb +3670 -40
  110. data/lib/mail/parsers/envelope_from_parser.rl +89 -0
  111. data/lib/mail/parsers/message_ids_parser.rb +5147 -25
  112. data/lib/mail/parsers/message_ids_parser.rl +93 -0
  113. data/lib/mail/parsers/mime_version_parser.rb +498 -26
  114. data/lib/mail/parsers/mime_version_parser.rl +68 -0
  115. data/lib/mail/parsers/phrase_lists_parser.rb +872 -21
  116. data/lib/mail/parsers/phrase_lists_parser.rl +90 -0
  117. data/lib/mail/parsers/received_parser.rb +8777 -42
  118. data/lib/mail/parsers/received_parser.rl +91 -0
  119. data/lib/mail/parsers/rfc2045_content_transfer_encoding.rl +13 -0
  120. data/lib/mail/parsers/rfc2045_content_type.rl +25 -0
  121. data/lib/mail/parsers/rfc2045_mime.rl +16 -0
  122. data/lib/mail/parsers/rfc2183_content_disposition.rl +15 -0
  123. data/lib/mail/parsers/rfc3629_utf8.rl +19 -0
  124. data/lib/mail/parsers/rfc5234_abnf_core_rules.rl +22 -0
  125. data/lib/mail/parsers/rfc5322.rl +74 -0
  126. data/lib/mail/parsers/rfc5322_address.rl +72 -0
  127. data/lib/mail/parsers/{ragel/date_time.rl → rfc5322_date_time.rl} +8 -1
  128. data/lib/mail/parsers/rfc5322_lexical_tokens.rl +60 -0
  129. data/lib/mail/parsers.rb +12 -25
  130. data/lib/mail/part.rb +11 -12
  131. data/lib/mail/parts_list.rb +88 -14
  132. data/lib/mail/smtp_envelope.rb +57 -0
  133. data/lib/mail/utilities.rb +377 -40
  134. data/lib/mail/values/unicode_tables.dat +0 -0
  135. data/lib/mail/version.rb +8 -15
  136. data/lib/mail/yaml.rb +30 -0
  137. data/lib/mail.rb +9 -32
  138. metadata +138 -94
  139. data/CHANGELOG.rdoc +0 -752
  140. data/CONTRIBUTING.md +0 -60
  141. data/Dependencies.txt +0 -2
  142. data/Gemfile +0 -15
  143. data/Rakefile +0 -29
  144. data/TODO.rdoc +0 -9
  145. data/VERSION +0 -4
  146. data/lib/mail/core_extensions/nil.rb +0 -19
  147. data/lib/mail/core_extensions/object.rb +0 -13
  148. data/lib/mail/core_extensions/smtp.rb +0 -24
  149. data/lib/mail/core_extensions/string/access.rb +0 -145
  150. data/lib/mail/core_extensions/string/multibyte.rb +0 -78
  151. data/lib/mail/core_extensions/string.rb +0 -43
  152. data/lib/mail/fields/common/address_container.rb +0 -16
  153. data/lib/mail/fields/common/common_address.rb +0 -135
  154. data/lib/mail/fields/common/common_date.rb +0 -35
  155. data/lib/mail/fields/common/common_field.rb +0 -57
  156. data/lib/mail/fields/common/common_message_id.rb +0 -48
  157. data/lib/mail/multibyte/exceptions.rb +0 -8
  158. data/lib/mail/parsers/ragel/common.rl +0 -184
  159. data/lib/mail/parsers/ragel/parser_info.rb +0 -61
  160. data/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb +0 -14864
  161. data/lib/mail/parsers/ragel/ruby/machines/address_lists_machine.rb.rl +0 -37
  162. data/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb +0 -751
  163. data/lib/mail/parsers/ragel/ruby/machines/content_disposition_machine.rb.rl +0 -37
  164. data/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb +0 -614
  165. data/lib/mail/parsers/ragel/ruby/machines/content_location_machine.rb.rl +0 -37
  166. data/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb +0 -447
  167. data/lib/mail/parsers/ragel/ruby/machines/content_transfer_encoding_machine.rb.rl +0 -37
  168. data/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb +0 -825
  169. data/lib/mail/parsers/ragel/ruby/machines/content_type_machine.rb.rl +0 -37
  170. data/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb +0 -817
  171. data/lib/mail/parsers/ragel/ruby/machines/date_time_machine.rb.rl +0 -37
  172. data/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb +0 -2129
  173. data/lib/mail/parsers/ragel/ruby/machines/envelope_from_machine.rb.rl +0 -37
  174. data/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb +0 -1570
  175. data/lib/mail/parsers/ragel/ruby/machines/message_ids_machine.rb.rl +0 -37
  176. data/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb +0 -440
  177. data/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl +0 -37
  178. data/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb +0 -564
  179. data/lib/mail/parsers/ragel/ruby/machines/phrase_lists_machine.rb.rl +0 -37
  180. data/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl +0 -51
  181. data/lib/mail/parsers/ragel/ruby/machines/received_machine.rb +0 -5144
  182. data/lib/mail/parsers/ragel/ruby/machines/received_machine.rb.rl +0 -37
  183. data/lib/mail/parsers/ragel/ruby/parser.rb.rl.erb +0 -37
  184. data/lib/mail/parsers/ragel/ruby.rb +0 -39
  185. data/lib/mail/parsers/ragel.rb +0 -17
  186. data/lib/mail/patterns.rb +0 -37
  187. data/lib/mail/version_specific/ruby_1_8.rb +0 -119
  188. data/lib/mail/version_specific/ruby_1_9.rb +0 -159
@@ -1,37 +0,0 @@
1
- %%{
2
- machine message_ids;
3
-
4
- include rb_actions "rb_actions.rl";
5
- include common "../../common.rl";
6
-
7
- getkey data_unpacked[p];
8
-
9
- main := message_ids;
10
- }%%
11
-
12
- module Mail
13
- module Parsers
14
- module Ragel
15
- module MessageIdsMachine
16
- %%write data;
17
-
18
- def self.parse(data)
19
- p = 0
20
- eof = data.length
21
- stack = []
22
-
23
- actions = []
24
- data_unpacked = data.bytes.to_a
25
- %%write init;
26
- %%write exec;
27
-
28
- if p == eof && cs >= %%{ write first_final; }%%
29
- return actions, nil
30
- else
31
- return [], "Only able to parse up to #{data[0..p]}"
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
@@ -1,440 +0,0 @@
1
-
2
- # line 1 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl"
3
-
4
- # line 10 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl"
5
-
6
-
7
- module Mail
8
- module Parsers
9
- module Ragel
10
- module MimeVersionMachine
11
-
12
- # line 13 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb"
13
- class << self
14
- attr_accessor :_mime_version_trans_keys
15
- private :_mime_version_trans_keys, :_mime_version_trans_keys=
16
- end
17
- self._mime_version_trans_keys = [
18
- 0, 0, 9, 57, 10, 10,
19
- 9, 32, 9, 57, 40,
20
- 57, 46, 46, 40, 57,
21
- 48, 57, 10, 10, 9, 32,
22
- 1, 127, 1, 127, 10,
23
- 10, 9, 32, 0, 127,
24
- 9, 57, 9, 40, 9, 40,
25
- 0, 0, 0
26
- ]
27
-
28
- class << self
29
- attr_accessor :_mime_version_key_spans
30
- private :_mime_version_key_spans, :_mime_version_key_spans=
31
- end
32
- self._mime_version_key_spans = [
33
- 0, 49, 1, 24, 49, 18, 1, 18,
34
- 10, 1, 24, 127, 127, 1, 24, 128,
35
- 49, 32, 32, 0
36
- ]
37
-
38
- class << self
39
- attr_accessor :_mime_version_index_offsets
40
- private :_mime_version_index_offsets, :_mime_version_index_offsets=
41
- end
42
- self._mime_version_index_offsets = [
43
- 0, 0, 50, 52, 77, 127, 146, 148,
44
- 167, 178, 180, 205, 333, 461, 463, 488,
45
- 617, 667, 700, 733
46
- ]
47
-
48
- class << self
49
- attr_accessor :_mime_version_indicies
50
- private :_mime_version_indicies, :_mime_version_indicies=
51
- end
52
- self._mime_version_indicies = [
53
- 0, 1, 1, 1, 2, 1, 1, 1,
54
- 1, 1, 1, 1, 1, 1, 1, 1,
55
- 1, 1, 1, 1, 1, 1, 1, 0,
56
- 1, 1, 1, 1, 1, 1, 1, 3,
57
- 1, 1, 1, 1, 1, 1, 1, 4,
58
- 4, 4, 4, 4, 4, 4, 4, 4,
59
- 4, 1, 5, 1, 0, 1, 1, 1,
60
- 1, 1, 1, 1, 1, 1, 1, 1,
61
- 1, 1, 1, 1, 1, 1, 1, 1,
62
- 1, 1, 1, 0, 1, 6, 1, 1,
63
- 1, 7, 1, 1, 1, 1, 1, 1,
64
- 1, 1, 1, 1, 1, 1, 1, 1,
65
- 1, 1, 1, 1, 6, 1, 1, 1,
66
- 1, 1, 1, 1, 8, 1, 1, 1,
67
- 1, 1, 1, 1, 9, 9, 9, 9,
68
- 9, 9, 9, 9, 9, 9, 1, 10,
69
- 1, 1, 1, 1, 1, 11, 1, 12,
70
- 12, 12, 12, 12, 12, 12, 12, 12,
71
- 12, 1, 13, 1, 14, 1, 1, 1,
72
- 1, 1, 1, 1, 15, 15, 15, 15,
73
- 15, 15, 15, 15, 15, 15, 1, 16,
74
- 16, 16, 16, 16, 16, 16, 16, 16,
75
- 16, 1, 17, 1, 18, 1, 1, 1,
76
- 1, 1, 1, 1, 1, 1, 1, 1,
77
- 1, 1, 1, 1, 1, 1, 1, 1,
78
- 1, 1, 1, 18, 1, 19, 19, 19,
79
- 19, 19, 19, 19, 19, 19, 1, 19,
80
- 19, 20, 19, 19, 19, 19, 19, 19,
81
- 19, 19, 19, 19, 19, 19, 19, 19,
82
- 19, 19, 19, 19, 19, 19, 19, 19,
83
- 19, 19, 19, 19, 21, 22, 19, 19,
84
- 19, 19, 19, 19, 19, 19, 19, 19,
85
- 19, 19, 19, 19, 19, 19, 19, 19,
86
- 19, 19, 19, 19, 19, 19, 19, 19,
87
- 19, 19, 19, 19, 19, 19, 19, 19,
88
- 19, 19, 19, 19, 19, 19, 19, 19,
89
- 19, 19, 19, 19, 19, 19, 19, 19,
90
- 23, 19, 19, 19, 19, 19, 19, 19,
91
- 19, 19, 19, 19, 19, 19, 19, 19,
92
- 19, 19, 19, 19, 19, 19, 19, 19,
93
- 19, 19, 19, 19, 19, 19, 19, 19,
94
- 19, 19, 19, 19, 1, 24, 24, 24,
95
- 24, 24, 24, 24, 24, 24, 1, 24,
96
- 24, 25, 24, 24, 24, 24, 24, 24,
97
- 24, 24, 24, 24, 24, 24, 24, 24,
98
- 24, 24, 24, 24, 24, 24, 24, 24,
99
- 24, 24, 24, 24, 26, 27, 24, 24,
100
- 24, 24, 24, 24, 24, 24, 24, 24,
101
- 24, 24, 24, 24, 24, 24, 24, 24,
102
- 24, 24, 24, 24, 24, 24, 24, 24,
103
- 24, 24, 24, 24, 24, 24, 24, 24,
104
- 24, 24, 24, 24, 24, 24, 24, 24,
105
- 24, 24, 24, 24, 24, 24, 24, 24,
106
- 28, 24, 24, 24, 24, 24, 24, 24,
107
- 24, 24, 24, 24, 24, 24, 24, 24,
108
- 24, 24, 24, 24, 24, 24, 24, 24,
109
- 24, 24, 24, 24, 24, 24, 24, 24,
110
- 24, 24, 24, 24, 1, 29, 1, 24,
111
- 1, 1, 1, 1, 1, 1, 1, 1,
112
- 1, 1, 1, 1, 1, 1, 1, 1,
113
- 1, 1, 1, 1, 1, 1, 24, 1,
114
- 24, 24, 24, 24, 24, 24, 24, 24,
115
- 24, 24, 24, 24, 24, 24, 24, 24,
116
- 24, 24, 24, 24, 24, 24, 24, 24,
117
- 24, 24, 24, 24, 24, 24, 24, 24,
118
- 24, 24, 24, 24, 24, 24, 24, 24,
119
- 24, 24, 24, 24, 24, 24, 24, 24,
120
- 24, 24, 24, 24, 24, 24, 24, 24,
121
- 24, 24, 24, 24, 24, 24, 24, 24,
122
- 24, 24, 24, 24, 24, 24, 24, 24,
123
- 24, 24, 24, 24, 24, 24, 24, 24,
124
- 24, 24, 24, 24, 24, 24, 24, 24,
125
- 24, 24, 24, 24, 24, 24, 24, 24,
126
- 24, 24, 24, 24, 24, 24, 24, 24,
127
- 24, 24, 24, 24, 24, 24, 24, 24,
128
- 24, 24, 24, 24, 24, 24, 24, 24,
129
- 24, 24, 24, 24, 24, 24, 24, 24,
130
- 1, 30, 1, 1, 1, 31, 1, 1,
131
- 1, 1, 1, 1, 1, 1, 1, 1,
132
- 1, 1, 1, 1, 1, 1, 1, 1,
133
- 30, 1, 1, 1, 1, 1, 1, 1,
134
- 32, 1, 1, 1, 1, 1, 1, 1,
135
- 33, 33, 33, 33, 33, 33, 33, 33,
136
- 33, 33, 1, 18, 1, 1, 1, 34,
137
- 1, 1, 1, 1, 1, 1, 1, 1,
138
- 1, 1, 1, 1, 1, 1, 1, 1,
139
- 1, 1, 18, 1, 1, 1, 1, 1,
140
- 1, 1, 35, 1, 36, 1, 1, 1,
141
- 37, 1, 1, 1, 1, 1, 1, 1,
142
- 1, 1, 1, 1, 1, 1, 1, 1,
143
- 1, 1, 1, 36, 1, 1, 1, 1,
144
- 1, 1, 1, 38, 1, 1, 0
145
- ]
146
-
147
- class << self
148
- attr_accessor :_mime_version_trans_targs
149
- private :_mime_version_trans_targs, :_mime_version_trans_targs=
150
- end
151
- self._mime_version_trans_targs = [
152
- 1, 0, 2, 4, 5, 3, 1, 2,
153
- 4, 5, 6, 7, 5, 7, 8, 16,
154
- 16, 10, 17, 12, 13, 12, 19, 15,
155
- 12, 13, 12, 19, 15, 14, 17, 9,
156
- 18, 16, 9, 18, 17, 9, 18
157
- ]
158
-
159
- class << self
160
- attr_accessor :_mime_version_trans_actions
161
- private :_mime_version_trans_actions, :_mime_version_trans_actions=
162
- end
163
- self._mime_version_trans_actions = [
164
- 0, 0, 0, 1, 2, 0, 3, 3,
165
- 4, 5, 6, 7, 0, 3, 1, 8,
166
- 9, 0, 0, 10, 10, 11, 12, 10,
167
- 0, 0, 1, 13, 0, 0, 14, 14,
168
- 15, 0, 0, 1, 3, 3, 4
169
- ]
170
-
171
- class << self
172
- attr_accessor :_mime_version_eof_actions
173
- private :_mime_version_eof_actions, :_mime_version_eof_actions=
174
- end
175
- self._mime_version_eof_actions = [
176
- 0, 0, 0, 0, 0, 0, 0, 0,
177
- 0, 0, 0, 0, 0, 0, 0, 0,
178
- 14, 0, 3, 0
179
- ]
180
-
181
- class << self
182
- attr_accessor :mime_version_start
183
- end
184
- self.mime_version_start = 1;
185
- class << self
186
- attr_accessor :mime_version_first_final
187
- end
188
- self.mime_version_first_final = 16;
189
- class << self
190
- attr_accessor :mime_version_error
191
- end
192
- self.mime_version_error = 0;
193
-
194
- class << self
195
- attr_accessor :mime_version_en_comment_tail
196
- end
197
- self.mime_version_en_comment_tail = 11;
198
- class << self
199
- attr_accessor :mime_version_en_main
200
- end
201
- self.mime_version_en_main = 1;
202
-
203
-
204
- # line 17 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl"
205
-
206
- def self.parse(data)
207
- p = 0
208
- eof = data.length
209
- stack = []
210
-
211
- actions = []
212
- data_unpacked = data.bytes.to_a
213
-
214
- # line 215 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb"
215
- begin
216
- p ||= 0
217
- pe ||= data.length
218
- cs = mime_version_start
219
- top = 0
220
- end
221
-
222
- # line 26 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl"
223
-
224
- # line 225 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb"
225
- begin
226
- testEof = false
227
- _slen, _trans, _keys, _inds, _acts, _nacts = nil
228
- _goto_level = 0
229
- _resume = 10
230
- _eof_trans = 15
231
- _again = 20
232
- _test_eof = 30
233
- _out = 40
234
- while true
235
- if _goto_level <= 0
236
- if p == pe
237
- _goto_level = _test_eof
238
- next
239
- end
240
- if cs == 0
241
- _goto_level = _out
242
- next
243
- end
244
- end
245
- if _goto_level <= _resume
246
- _keys = cs << 1
247
- _inds = _mime_version_index_offsets[cs]
248
- _slen = _mime_version_key_spans[cs]
249
- _trans = if ( _slen > 0 &&
250
- _mime_version_trans_keys[_keys] <= ( data_unpacked[p]) &&
251
- ( data_unpacked[p]) <= _mime_version_trans_keys[_keys + 1]
252
- ) then
253
- _mime_version_indicies[ _inds + ( data_unpacked[p]) - _mime_version_trans_keys[_keys] ]
254
- else
255
- _mime_version_indicies[ _inds + _slen ]
256
- end
257
- cs = _mime_version_trans_targs[_trans]
258
- if _mime_version_trans_actions[_trans] != 0
259
- case _mime_version_trans_actions[_trans]
260
- when 3 then
261
- # line 7 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
262
- begin
263
- actions.push(4, p) end
264
- when 10 then
265
- # line 8 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
266
- begin
267
- actions.push(5, p) end
268
- when 7 then
269
- # line 27 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
270
- begin
271
- actions.push(24, p) end
272
- when 2 then
273
- # line 28 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
274
- begin
275
- actions.push(25, p) end
276
- when 14 then
277
- # line 29 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
278
- begin
279
- actions.push(26, p) end
280
- when 8 then
281
- # line 30 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
282
- begin
283
- actions.push(27, p) end
284
- when 1 then
285
- # line 5 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/../../common.rl"
286
- begin
287
- begin
288
- stack[top] = cs
289
- top+= 1
290
- cs = 11
291
- _goto_level = _again
292
- next
293
- end
294
- end
295
- when 13 then
296
- # line 6 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/../../common.rl"
297
- begin
298
- begin
299
- top -= 1
300
- cs = stack[top]
301
- _goto_level = _again
302
- next
303
- end
304
- end
305
- when 5 then
306
- # line 7 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
307
- begin
308
- actions.push(4, p) end
309
- # line 28 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
310
- begin
311
- actions.push(25, p) end
312
- when 9 then
313
- # line 7 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
314
- begin
315
- actions.push(4, p) end
316
- # line 30 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
317
- begin
318
- actions.push(27, p) end
319
- when 4 then
320
- # line 7 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
321
- begin
322
- actions.push(4, p) end
323
- # line 5 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/../../common.rl"
324
- begin
325
- begin
326
- stack[top] = cs
327
- top+= 1
328
- cs = 11
329
- _goto_level = _again
330
- next
331
- end
332
- end
333
- when 11 then
334
- # line 8 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
335
- begin
336
- actions.push(5, p) end
337
- # line 5 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/../../common.rl"
338
- begin
339
- begin
340
- stack[top] = cs
341
- top+= 1
342
- cs = 11
343
- _goto_level = _again
344
- next
345
- end
346
- end
347
- when 12 then
348
- # line 8 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
349
- begin
350
- actions.push(5, p) end
351
- # line 6 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/../../common.rl"
352
- begin
353
- begin
354
- top -= 1
355
- cs = stack[top]
356
- _goto_level = _again
357
- next
358
- end
359
- end
360
- when 6 then
361
- # line 27 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
362
- begin
363
- actions.push(24, p) end
364
- # line 5 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/../../common.rl"
365
- begin
366
- begin
367
- stack[top] = cs
368
- top+= 1
369
- cs = 11
370
- _goto_level = _again
371
- next
372
- end
373
- end
374
- when 15 then
375
- # line 29 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
376
- begin
377
- actions.push(26, p) end
378
- # line 5 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/../../common.rl"
379
- begin
380
- begin
381
- stack[top] = cs
382
- top+= 1
383
- cs = 11
384
- _goto_level = _again
385
- next
386
- end
387
- end
388
- # line 389 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb"
389
- end
390
- end
391
- end
392
- if _goto_level <= _again
393
- if cs == 0
394
- _goto_level = _out
395
- next
396
- end
397
- p += 1
398
- if p != pe
399
- _goto_level = _resume
400
- next
401
- end
402
- end
403
- if _goto_level <= _test_eof
404
- if p == eof
405
- case _mime_version_eof_actions[cs]
406
- when 3 then
407
- # line 7 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
408
- begin
409
- actions.push(4, p) end
410
- when 14 then
411
- # line 29 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/rb_actions.rl"
412
- begin
413
- actions.push(26, p) end
414
- # line 415 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb"
415
- end
416
- end
417
-
418
- end
419
- if _goto_level <= _out
420
- break
421
- end
422
- end
423
- end
424
-
425
- # line 27 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl"
426
-
427
- if p == eof && cs >=
428
- # line 429 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb"
429
- 16
430
- # line 28 "/home/bpot/src/gh/bpot/mail/lib/mail/parsers/ragel/ruby/machines/mime_version_machine.rb.rl"
431
-
432
- return actions, nil
433
- else
434
- return [], "Only able to parse up to #{data[0..p]}"
435
- end
436
- end
437
- end
438
- end
439
- end
440
- end
@@ -1,37 +0,0 @@
1
- %%{
2
- machine mime_version;
3
-
4
- include rb_actions "rb_actions.rl";
5
- include common "../../common.rl";
6
-
7
- getkey data_unpacked[p];
8
-
9
- main := mime_version;
10
- }%%
11
-
12
- module Mail
13
- module Parsers
14
- module Ragel
15
- module MimeVersionMachine
16
- %%write data;
17
-
18
- def self.parse(data)
19
- p = 0
20
- eof = data.length
21
- stack = []
22
-
23
- actions = []
24
- data_unpacked = data.bytes.to_a
25
- %%write init;
26
- %%write exec;
27
-
28
- if p == eof && cs >= %%{ write first_final; }%%
29
- return actions, nil
30
- else
31
- return [], "Only able to parse up to #{data[0..p]}"
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end