mail 2.1.3 → 2.1.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of mail might be problematic. Click here for more details.

Files changed (106) hide show
  1. data/CHANGELOG.rdoc +37 -0
  2. data/README.rdoc +1 -1
  3. data/Rakefile +2 -3
  4. data/TODO.rdoc +2 -12
  5. data/lib/mail.rb +7 -4
  6. data/lib/mail/attachments_list.rb +28 -10
  7. data/lib/mail/body.rb +44 -15
  8. data/lib/mail/core_extensions/string.rb +4 -0
  9. data/lib/mail/elements/content_transfer_encoding_element.rb +4 -1
  10. data/lib/mail/encodings/7bit.rb +29 -0
  11. data/lib/mail/encodings/8bit.rb +29 -0
  12. data/lib/mail/encodings/base64.rb +18 -5
  13. data/lib/mail/encodings/binary.rb +29 -0
  14. data/lib/mail/encodings/encodings.rb +22 -6
  15. data/lib/mail/encodings/quoted_printable.rb +27 -4
  16. data/lib/mail/encodings/transfer_encoding.rb +58 -0
  17. data/lib/mail/field.rb +4 -2
  18. data/lib/mail/fields/common/parameter_hash.rb +12 -3
  19. data/lib/mail/fields/content_disposition_field.rb +12 -2
  20. data/lib/mail/fields/content_location_field.rb +2 -2
  21. data/lib/mail/fields/content_transfer_encoding_field.rb +5 -3
  22. data/lib/mail/fields/content_type_field.rb +14 -4
  23. data/lib/mail/fields/mime_version_field.rb +2 -2
  24. data/lib/mail/fields/received_field.rb +8 -4
  25. data/lib/mail/fields/structured_field.rb +4 -0
  26. data/lib/mail/fields/unstructured_field.rb +5 -0
  27. data/lib/mail/header.rb +13 -6
  28. data/lib/mail/mail.rb +1 -1
  29. data/lib/mail/message.rb +100 -28
  30. data/lib/mail/network/delivery_methods/smtp.rb +1 -1
  31. data/lib/mail/parsers/address_lists.rb +4 -1
  32. data/lib/mail/parsers/content_disposition.rb +24 -6
  33. data/lib/mail/parsers/content_location.rb +8 -2
  34. data/lib/mail/parsers/content_transfer_encoding.rb +73 -83
  35. data/lib/mail/parsers/content_transfer_encoding.treetop +5 -10
  36. data/lib/mail/parsers/content_type.rb +36 -9
  37. data/lib/mail/parsers/date_time.rb +4 -1
  38. data/lib/mail/parsers/envelope_from.rb +8 -2
  39. data/lib/mail/parsers/message_ids.rb +4 -1
  40. data/lib/mail/parsers/mime_version.rb +4 -1
  41. data/lib/mail/parsers/phrase_lists.rb +4 -1
  42. data/lib/mail/parsers/received.rb +4 -1
  43. data/lib/mail/parsers/rfc2045.rb +75 -17
  44. data/lib/mail/parsers/rfc2045.treetop +2 -1
  45. data/lib/mail/parsers/rfc2822.rb +316 -79
  46. data/lib/mail/parsers/rfc2822_obsolete.rb +200 -50
  47. data/lib/mail/part.rb +21 -6
  48. data/lib/mail/patterns.rb +3 -3
  49. data/lib/mail/utilities.rb +4 -4
  50. data/lib/mail/vendor/treetop-1.4.3/Or +0 -0
  51. data/lib/mail/vendor/treetop-1.4.3/Rakefile +11 -6
  52. data/lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Preferences/Comments.tmPreferences +22 -0
  53. data/lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Syntaxes/Treetop Grammar.tmLanguage +28 -1
  54. data/lib/mail/vendor/treetop-1.4.3/bin/tt +5 -5
  55. data/lib/mail/vendor/treetop-1.4.3/lib/treetop.rb +3 -19
  56. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/bootstrap_gen_1_metagrammar.rb +4 -7
  57. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/compiler.rb +7 -6
  58. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/compiler/metagrammar.rb +1 -1
  59. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/compiler/node_classes.rb +19 -20
  60. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/polyglot.rb +9 -0
  61. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/ruby_extensions.rb +1 -2
  62. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/runtime.rb +6 -5
  63. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/runtime/interval_skip_list.rb +3 -4
  64. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/runtime/syntax_node.rb +7 -7
  65. data/lib/mail/vendor/treetop-1.4.3/lib/treetop/version.rb +1 -1
  66. data/lib/mail/vendor/treetop-1.4.3/script/generate_metagrammar.rb +3 -4
  67. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/and_predicate_spec.rb +2 -2
  68. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/anything_symbol_spec.rb +2 -2
  69. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/character_class_spec.rb +1 -1
  70. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/choice_spec.rb +2 -2
  71. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/circular_compilation_spec.rb +3 -1
  72. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/failure_propagation_functional_spec.rb +2 -2
  73. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/grammar_compiler_spec.rb +1 -1
  74. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/grammar_spec.rb +1 -1
  75. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/multibyte_chars_spec.rb +1 -9
  76. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/nonterminal_symbol_spec.rb +2 -2
  77. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/not_predicate_spec.rb +2 -2
  78. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/one_or_more_spec.rb +2 -2
  79. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/optional_spec.rb +1 -1
  80. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/parenthesized_expression_spec.rb +1 -1
  81. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/parsing_rule_spec.rb +1 -1
  82. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/repeated_subrule_spec.rb +1 -1
  83. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/semantic_predicate_spec.rb +1 -1
  84. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/sequence_spec.rb +1 -1
  85. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/terminal_spec.rb +1 -1
  86. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/terminal_symbol_spec.rb +1 -1
  87. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/tt_compiler_spec.rb +1 -1
  88. data/lib/mail/vendor/treetop-1.4.3/spec/compiler/zero_or_more_spec.rb +1 -1
  89. data/lib/mail/vendor/treetop-1.4.3/spec/composition/grammar_composition_spec.rb +1 -1
  90. data/lib/mail/vendor/treetop-1.4.3/spec/ruby_extensions/string_spec.rb +1 -1
  91. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/compiled_parser_spec.rb +1 -1
  92. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/delete_spec.rb +2 -2
  93. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/expire_range_spec.rb +2 -2
  94. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/insert_spec.rb +1 -1
  95. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +2 -2
  96. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +2 -3
  97. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/spec_helper.rb +2 -2
  98. data/lib/mail/vendor/treetop-1.4.3/spec/runtime/syntax_node_spec.rb +1 -1
  99. data/lib/mail/vendor/treetop-1.4.3/spec/spec_helper.rb +4 -5
  100. data/lib/mail/vendor/treetop-1.4.3/treetop.gemspec +2 -2
  101. data/lib/mail/version.rb +1 -1
  102. data/lib/mail/version_specific/ruby_1_8.rb +1 -3
  103. data/lib/mail/version_specific/ruby_1_9.rb +1 -2
  104. data/lib/tasks/treetop.rake +1 -1
  105. metadata +33 -14
  106. data/lib/mail/vendor/treetop-1.4.3/spec/spec_suite.rb +0 -4
@@ -16,7 +16,10 @@ module Mail
16
16
  start_index = index
17
17
  if node_cache[:obs_qp].has_key?(index)
18
18
  cached = node_cache[:obs_qp][index]
19
- @index = cached.interval.end if cached
19
+ if cached
20
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
21
+ @index = cached.interval.end
22
+ end
20
23
  return cached
21
24
  end
22
25
 
@@ -65,7 +68,10 @@ module Mail
65
68
  start_index = index
66
69
  if node_cache[:obs_text].has_key?(index)
67
70
  cached = node_cache[:obs_text][index]
68
- @index = cached.interval.end if cached
71
+ if cached
72
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
73
+ @index = cached.interval.end
74
+ end
69
75
  return cached
70
76
  end
71
77
 
@@ -159,7 +165,10 @@ module Mail
159
165
  start_index = index
160
166
  if node_cache[:obs_char].has_key?(index)
161
167
  cached = node_cache[:obs_char][index]
162
- @index = cached.interval.end if cached
168
+ if cached
169
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
170
+ @index = cached.interval.end
171
+ end
163
172
  return cached
164
173
  end
165
174
 
@@ -206,7 +215,10 @@ module Mail
206
215
  start_index = index
207
216
  if node_cache[:obs_utext].has_key?(index)
208
217
  cached = node_cache[:obs_utext][index]
209
- @index = cached.interval.end if cached
218
+ if cached
219
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
220
+ @index = cached.interval.end
221
+ end
210
222
  return cached
211
223
  end
212
224
 
@@ -221,7 +233,10 @@ module Mail
221
233
  start_index = index
222
234
  if node_cache[:obs_phrase].has_key?(index)
223
235
  cached = node_cache[:obs_phrase][index]
224
- @index = cached.interval.end if cached
236
+ if cached
237
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
238
+ @index = cached.interval.end
239
+ end
225
240
  return cached
226
241
  end
227
242
 
@@ -274,7 +289,10 @@ module Mail
274
289
  start_index = index
275
290
  if node_cache[:obs_phrase_list].has_key?(index)
276
291
  cached = node_cache[:obs_phrase_list][index]
277
- @index = cached.interval.end if cached
292
+ if cached
293
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
294
+ @index = cached.interval.end
295
+ end
278
296
  return cached
279
297
  end
280
298
 
@@ -385,7 +403,10 @@ module Mail
385
403
  start_index = index
386
404
  if node_cache[:obs_FWS].has_key?(index)
387
405
  cached = node_cache[:obs_FWS][index]
388
- @index = cached.interval.end if cached
406
+ if cached
407
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
408
+ @index = cached.interval.end
409
+ end
389
410
  return cached
390
411
  end
391
412
 
@@ -470,7 +491,10 @@ module Mail
470
491
  start_index = index
471
492
  if node_cache[:obs_day_of_week].has_key?(index)
472
493
  cached = node_cache[:obs_day_of_week][index]
473
- @index = cached.interval.end if cached
494
+ if cached
495
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
496
+ @index = cached.interval.end
497
+ end
474
498
  return cached
475
499
  end
476
500
 
@@ -525,7 +549,10 @@ module Mail
525
549
  start_index = index
526
550
  if node_cache[:obs_year].has_key?(index)
527
551
  cached = node_cache[:obs_year][index]
528
- @index = cached.interval.end if cached
552
+ if cached
553
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
554
+ @index = cached.interval.end
555
+ end
529
556
  return cached
530
557
  end
531
558
 
@@ -594,7 +621,10 @@ module Mail
594
621
  start_index = index
595
622
  if node_cache[:obs_month].has_key?(index)
596
623
  cached = node_cache[:obs_month][index]
597
- @index = cached.interval.end if cached
624
+ if cached
625
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
626
+ @index = cached.interval.end
627
+ end
598
628
  return cached
599
629
  end
600
630
 
@@ -639,7 +669,10 @@ module Mail
639
669
  start_index = index
640
670
  if node_cache[:obs_day].has_key?(index)
641
671
  cached = node_cache[:obs_day][index]
642
- @index = cached.interval.end if cached
672
+ if cached
673
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
674
+ @index = cached.interval.end
675
+ end
643
676
  return cached
644
677
  end
645
678
 
@@ -719,7 +752,10 @@ module Mail
719
752
  start_index = index
720
753
  if node_cache[:obs_hour].has_key?(index)
721
754
  cached = node_cache[:obs_hour][index]
722
- @index = cached.interval.end if cached
755
+ if cached
756
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
757
+ @index = cached.interval.end
758
+ end
723
759
  return cached
724
760
  end
725
761
 
@@ -787,7 +823,10 @@ module Mail
787
823
  start_index = index
788
824
  if node_cache[:obs_minute].has_key?(index)
789
825
  cached = node_cache[:obs_minute][index]
790
- @index = cached.interval.end if cached
826
+ if cached
827
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
828
+ @index = cached.interval.end
829
+ end
791
830
  return cached
792
831
  end
793
832
 
@@ -855,7 +894,10 @@ module Mail
855
894
  start_index = index
856
895
  if node_cache[:obs_second].has_key?(index)
857
896
  cached = node_cache[:obs_second][index]
858
- @index = cached.interval.end if cached
897
+ if cached
898
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
899
+ @index = cached.interval.end
900
+ end
859
901
  return cached
860
902
  end
861
903
 
@@ -910,7 +952,10 @@ module Mail
910
952
  start_index = index
911
953
  if node_cache[:obs_zone].has_key?(index)
912
954
  cached = node_cache[:obs_zone][index]
913
- @index = cached.interval.end if cached
955
+ if cached
956
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
957
+ @index = cached.interval.end
958
+ end
914
959
  return cached
915
960
  end
916
961
 
@@ -1084,7 +1129,10 @@ module Mail
1084
1129
  start_index = index
1085
1130
  if node_cache[:obs_angle_addr].has_key?(index)
1086
1131
  cached = node_cache[:obs_angle_addr][index]
1087
- @index = cached.interval.end if cached
1132
+ if cached
1133
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1134
+ @index = cached.interval.end
1135
+ end
1088
1136
  return cached
1089
1137
  end
1090
1138
 
@@ -1162,7 +1210,10 @@ module Mail
1162
1210
  start_index = index
1163
1211
  if node_cache[:obs_route].has_key?(index)
1164
1212
  cached = node_cache[:obs_route][index]
1165
- @index = cached.interval.end if cached
1213
+ if cached
1214
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1215
+ @index = cached.interval.end
1216
+ end
1166
1217
  return cached
1167
1218
  end
1168
1219
 
@@ -1227,7 +1278,10 @@ module Mail
1227
1278
  start_index = index
1228
1279
  if node_cache[:obs_domain_list].has_key?(index)
1229
1280
  cached = node_cache[:obs_domain_list][index]
1230
- @index = cached.interval.end if cached
1281
+ if cached
1282
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1283
+ @index = cached.interval.end
1284
+ end
1231
1285
  return cached
1232
1286
  end
1233
1287
 
@@ -1334,7 +1388,10 @@ module Mail
1334
1388
  start_index = index
1335
1389
  if node_cache[:obs_local_part].has_key?(index)
1336
1390
  cached = node_cache[:obs_local_part][index]
1337
- @index = cached.interval.end if cached
1391
+ if cached
1392
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1393
+ @index = cached.interval.end
1394
+ end
1338
1395
  return cached
1339
1396
  end
1340
1397
 
@@ -1403,7 +1460,10 @@ module Mail
1403
1460
  start_index = index
1404
1461
  if node_cache[:obs_domain].has_key?(index)
1405
1462
  cached = node_cache[:obs_domain][index]
1406
- @index = cached.interval.end if cached
1463
+ if cached
1464
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1465
+ @index = cached.interval.end
1466
+ end
1407
1467
  return cached
1408
1468
  end
1409
1469
 
@@ -1465,7 +1525,10 @@ module Mail
1465
1525
  start_index = index
1466
1526
  if node_cache[:obs_mbox_list].has_key?(index)
1467
1527
  cached = node_cache[:obs_mbox_list][index]
1468
- @index = cached.interval.end if cached
1528
+ if cached
1529
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1530
+ @index = cached.interval.end
1531
+ end
1469
1532
  return cached
1470
1533
  end
1471
1534
 
@@ -1560,7 +1623,10 @@ module Mail
1560
1623
  start_index = index
1561
1624
  if node_cache[:obs_addr_list].has_key?(index)
1562
1625
  cached = node_cache[:obs_addr_list][index]
1563
- @index = cached.interval.end if cached
1626
+ if cached
1627
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1628
+ @index = cached.interval.end
1629
+ end
1564
1630
  return cached
1565
1631
  end
1566
1632
 
@@ -1649,7 +1715,10 @@ module Mail
1649
1715
  start_index = index
1650
1716
  if node_cache[:obs_fields].has_key?(index)
1651
1717
  cached = node_cache[:obs_fields][index]
1652
- @index = cached.interval.end if cached
1718
+ if cached
1719
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1720
+ @index = cached.interval.end
1721
+ end
1653
1722
  return cached
1654
1723
  end
1655
1724
 
@@ -1805,7 +1874,10 @@ module Mail
1805
1874
  start_index = index
1806
1875
  if node_cache[:obs_orig_date].has_key?(index)
1807
1876
  cached = node_cache[:obs_orig_date][index]
1808
- @index = cached.interval.end if cached
1877
+ if cached
1878
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1879
+ @index = cached.interval.end
1880
+ end
1809
1881
  return cached
1810
1882
  end
1811
1883
 
@@ -1876,7 +1948,10 @@ module Mail
1876
1948
  start_index = index
1877
1949
  if node_cache[:obs_from].has_key?(index)
1878
1950
  cached = node_cache[:obs_from][index]
1879
- @index = cached.interval.end if cached
1951
+ if cached
1952
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1953
+ @index = cached.interval.end
1954
+ end
1880
1955
  return cached
1881
1956
  end
1882
1957
 
@@ -1947,7 +2022,10 @@ module Mail
1947
2022
  start_index = index
1948
2023
  if node_cache[:obs_sender].has_key?(index)
1949
2024
  cached = node_cache[:obs_sender][index]
1950
- @index = cached.interval.end if cached
2025
+ if cached
2026
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2027
+ @index = cached.interval.end
2028
+ end
1951
2029
  return cached
1952
2030
  end
1953
2031
 
@@ -2018,7 +2096,10 @@ module Mail
2018
2096
  start_index = index
2019
2097
  if node_cache[:obs_reply_to].has_key?(index)
2020
2098
  cached = node_cache[:obs_reply_to][index]
2021
- @index = cached.interval.end if cached
2099
+ if cached
2100
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2101
+ @index = cached.interval.end
2102
+ end
2022
2103
  return cached
2023
2104
  end
2024
2105
 
@@ -2089,7 +2170,10 @@ module Mail
2089
2170
  start_index = index
2090
2171
  if node_cache[:obs_to].has_key?(index)
2091
2172
  cached = node_cache[:obs_to][index]
2092
- @index = cached.interval.end if cached
2173
+ if cached
2174
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2175
+ @index = cached.interval.end
2176
+ end
2093
2177
  return cached
2094
2178
  end
2095
2179
 
@@ -2160,7 +2244,10 @@ module Mail
2160
2244
  start_index = index
2161
2245
  if node_cache[:obs_cc].has_key?(index)
2162
2246
  cached = node_cache[:obs_cc][index]
2163
- @index = cached.interval.end if cached
2247
+ if cached
2248
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2249
+ @index = cached.interval.end
2250
+ end
2164
2251
  return cached
2165
2252
  end
2166
2253
 
@@ -2227,7 +2314,10 @@ module Mail
2227
2314
  start_index = index
2228
2315
  if node_cache[:obs_bcc].has_key?(index)
2229
2316
  cached = node_cache[:obs_bcc][index]
2230
- @index = cached.interval.end if cached
2317
+ if cached
2318
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2319
+ @index = cached.interval.end
2320
+ end
2231
2321
  return cached
2232
2322
  end
2233
2323
 
@@ -2315,7 +2405,10 @@ module Mail
2315
2405
  start_index = index
2316
2406
  if node_cache[:obs_message_id].has_key?(index)
2317
2407
  cached = node_cache[:obs_message_id][index]
2318
- @index = cached.interval.end if cached
2408
+ if cached
2409
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2410
+ @index = cached.interval.end
2411
+ end
2319
2412
  return cached
2320
2413
  end
2321
2414
 
@@ -2382,7 +2475,10 @@ module Mail
2382
2475
  start_index = index
2383
2476
  if node_cache[:obs_in_reply_to].has_key?(index)
2384
2477
  cached = node_cache[:obs_in_reply_to][index]
2385
- @index = cached.interval.end if cached
2478
+ if cached
2479
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2480
+ @index = cached.interval.end
2481
+ end
2386
2482
  return cached
2387
2483
  end
2388
2484
 
@@ -2470,7 +2566,10 @@ module Mail
2470
2566
  start_index = index
2471
2567
  if node_cache[:obs_references].has_key?(index)
2472
2568
  cached = node_cache[:obs_references][index]
2473
- @index = cached.interval.end if cached
2569
+ if cached
2570
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2571
+ @index = cached.interval.end
2572
+ end
2474
2573
  return cached
2475
2574
  end
2476
2575
 
@@ -2552,7 +2651,10 @@ module Mail
2552
2651
  start_index = index
2553
2652
  if node_cache[:obs_id_left].has_key?(index)
2554
2653
  cached = node_cache[:obs_id_left][index]
2555
- @index = cached.interval.end if cached
2654
+ if cached
2655
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2656
+ @index = cached.interval.end
2657
+ end
2556
2658
  return cached
2557
2659
  end
2558
2660
 
@@ -2567,7 +2669,10 @@ module Mail
2567
2669
  start_index = index
2568
2670
  if node_cache[:obs_id_right].has_key?(index)
2569
2671
  cached = node_cache[:obs_id_right][index]
2570
- @index = cached.interval.end if cached
2672
+ if cached
2673
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2674
+ @index = cached.interval.end
2675
+ end
2571
2676
  return cached
2572
2677
  end
2573
2678
 
@@ -2592,7 +2697,10 @@ module Mail
2592
2697
  start_index = index
2593
2698
  if node_cache[:obs_subject].has_key?(index)
2594
2699
  cached = node_cache[:obs_subject][index]
2595
- @index = cached.interval.end if cached
2700
+ if cached
2701
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2702
+ @index = cached.interval.end
2703
+ end
2596
2704
  return cached
2597
2705
  end
2598
2706
 
@@ -2663,7 +2771,10 @@ module Mail
2663
2771
  start_index = index
2664
2772
  if node_cache[:obs_comments].has_key?(index)
2665
2773
  cached = node_cache[:obs_comments][index]
2666
- @index = cached.interval.end if cached
2774
+ if cached
2775
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2776
+ @index = cached.interval.end
2777
+ end
2667
2778
  return cached
2668
2779
  end
2669
2780
 
@@ -2734,7 +2845,10 @@ module Mail
2734
2845
  start_index = index
2735
2846
  if node_cache[:obs_keywords].has_key?(index)
2736
2847
  cached = node_cache[:obs_keywords][index]
2737
- @index = cached.interval.end if cached
2848
+ if cached
2849
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2850
+ @index = cached.interval.end
2851
+ end
2738
2852
  return cached
2739
2853
  end
2740
2854
 
@@ -2805,7 +2919,10 @@ module Mail
2805
2919
  start_index = index
2806
2920
  if node_cache[:obs_resent_from].has_key?(index)
2807
2921
  cached = node_cache[:obs_resent_from][index]
2808
- @index = cached.interval.end if cached
2922
+ if cached
2923
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2924
+ @index = cached.interval.end
2925
+ end
2809
2926
  return cached
2810
2927
  end
2811
2928
 
@@ -2876,7 +2993,10 @@ module Mail
2876
2993
  start_index = index
2877
2994
  if node_cache[:obs_resent_send].has_key?(index)
2878
2995
  cached = node_cache[:obs_resent_send][index]
2879
- @index = cached.interval.end if cached
2996
+ if cached
2997
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2998
+ @index = cached.interval.end
2999
+ end
2880
3000
  return cached
2881
3001
  end
2882
3002
 
@@ -2947,7 +3067,10 @@ module Mail
2947
3067
  start_index = index
2948
3068
  if node_cache[:obs_resent_date].has_key?(index)
2949
3069
  cached = node_cache[:obs_resent_date][index]
2950
- @index = cached.interval.end if cached
3070
+ if cached
3071
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3072
+ @index = cached.interval.end
3073
+ end
2951
3074
  return cached
2952
3075
  end
2953
3076
 
@@ -3018,7 +3141,10 @@ module Mail
3018
3141
  start_index = index
3019
3142
  if node_cache[:obs_resent_to].has_key?(index)
3020
3143
  cached = node_cache[:obs_resent_to][index]
3021
- @index = cached.interval.end if cached
3144
+ if cached
3145
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3146
+ @index = cached.interval.end
3147
+ end
3022
3148
  return cached
3023
3149
  end
3024
3150
 
@@ -3089,7 +3215,10 @@ module Mail
3089
3215
  start_index = index
3090
3216
  if node_cache[:obs_resent_cc].has_key?(index)
3091
3217
  cached = node_cache[:obs_resent_cc][index]
3092
- @index = cached.interval.end if cached
3218
+ if cached
3219
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3220
+ @index = cached.interval.end
3221
+ end
3093
3222
  return cached
3094
3223
  end
3095
3224
 
@@ -3156,7 +3285,10 @@ module Mail
3156
3285
  start_index = index
3157
3286
  if node_cache[:obs_resent_bcc].has_key?(index)
3158
3287
  cached = node_cache[:obs_resent_bcc][index]
3159
- @index = cached.interval.end if cached
3288
+ if cached
3289
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3290
+ @index = cached.interval.end
3291
+ end
3160
3292
  return cached
3161
3293
  end
3162
3294
 
@@ -3244,7 +3376,10 @@ module Mail
3244
3376
  start_index = index
3245
3377
  if node_cache[:obs_resent_mid].has_key?(index)
3246
3378
  cached = node_cache[:obs_resent_mid][index]
3247
- @index = cached.interval.end if cached
3379
+ if cached
3380
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3381
+ @index = cached.interval.end
3382
+ end
3248
3383
  return cached
3249
3384
  end
3250
3385
 
@@ -3315,7 +3450,10 @@ module Mail
3315
3450
  start_index = index
3316
3451
  if node_cache[:obs_resent_rply].has_key?(index)
3317
3452
  cached = node_cache[:obs_resent_rply][index]
3318
- @index = cached.interval.end if cached
3453
+ if cached
3454
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3455
+ @index = cached.interval.end
3456
+ end
3319
3457
  return cached
3320
3458
  end
3321
3459
 
@@ -3386,7 +3524,10 @@ module Mail
3386
3524
  start_index = index
3387
3525
  if node_cache[:obs_return].has_key?(index)
3388
3526
  cached = node_cache[:obs_return][index]
3389
- @index = cached.interval.end if cached
3527
+ if cached
3528
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3529
+ @index = cached.interval.end
3530
+ end
3390
3531
  return cached
3391
3532
  end
3392
3533
 
@@ -3457,7 +3598,10 @@ module Mail
3457
3598
  start_index = index
3458
3599
  if node_cache[:obs_received].has_key?(index)
3459
3600
  cached = node_cache[:obs_received][index]
3460
- @index = cached.interval.end if cached
3601
+ if cached
3602
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3603
+ @index = cached.interval.end
3604
+ end
3461
3605
  return cached
3462
3606
  end
3463
3607
 
@@ -3518,7 +3662,10 @@ module Mail
3518
3662
  start_index = index
3519
3663
  if node_cache[:obs_path].has_key?(index)
3520
3664
  cached = node_cache[:obs_path][index]
3521
- @index = cached.interval.end if cached
3665
+ if cached
3666
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3667
+ @index = cached.interval.end
3668
+ end
3522
3669
  return cached
3523
3670
  end
3524
3671
 
@@ -3547,7 +3694,10 @@ module Mail
3547
3694
  start_index = index
3548
3695
  if node_cache[:obs_optional].has_key?(index)
3549
3696
  cached = node_cache[:obs_optional][index]
3550
- @index = cached.interval.end if cached
3697
+ if cached
3698
+ cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3699
+ @index = cached.interval.end
3700
+ end
3551
3701
  return cached
3552
3702
  end
3553
3703