rack-mail_exception 0.0.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.
- data/.document +5 -0
- data/.gitignore +22 -0
- data/LICENSE +20 -0
- data/README.rdoc +38 -0
- data/Rakefile +56 -0
- data/VERSION +1 -0
- data/lib/rack/mail_exception.rb +103 -0
- data/test/helper.rb +13 -0
- data/test/test_rack_mail_exception.rb +93 -0
- data/vendor/mail/.bundle/config +2 -0
- data/vendor/mail/CHANGELOG.rdoc +370 -0
- data/vendor/mail/Dependencies.txt +3 -0
- data/vendor/mail/Gemfile +17 -0
- data/vendor/mail/README.rdoc +572 -0
- data/vendor/mail/ROADMAP +92 -0
- data/vendor/mail/Rakefile +41 -0
- data/vendor/mail/TODO.rdoc +9 -0
- data/vendor/mail/lib/mail.rb +76 -0
- data/vendor/mail/lib/mail/attachments_list.rb +99 -0
- data/vendor/mail/lib/mail/body.rb +287 -0
- data/vendor/mail/lib/mail/configuration.rb +67 -0
- data/vendor/mail/lib/mail/core_extensions/blank.rb +26 -0
- data/vendor/mail/lib/mail/core_extensions/nil.rb +11 -0
- data/vendor/mail/lib/mail/core_extensions/string.rb +27 -0
- data/vendor/mail/lib/mail/elements.rb +14 -0
- data/vendor/mail/lib/mail/elements/address.rb +306 -0
- data/vendor/mail/lib/mail/elements/address_list.rb +74 -0
- data/vendor/mail/lib/mail/elements/content_disposition_element.rb +30 -0
- data/vendor/mail/lib/mail/elements/content_location_element.rb +25 -0
- data/vendor/mail/lib/mail/elements/content_transfer_encoding_element.rb +24 -0
- data/vendor/mail/lib/mail/elements/content_type_element.rb +35 -0
- data/vendor/mail/lib/mail/elements/date_time_element.rb +26 -0
- data/vendor/mail/lib/mail/elements/envelope_from_element.rb +34 -0
- data/vendor/mail/lib/mail/elements/message_ids_element.rb +29 -0
- data/vendor/mail/lib/mail/elements/mime_version_element.rb +26 -0
- data/vendor/mail/lib/mail/elements/phrase_list.rb +21 -0
- data/vendor/mail/lib/mail/elements/received_element.rb +30 -0
- data/vendor/mail/lib/mail/encodings.rb +258 -0
- data/vendor/mail/lib/mail/encodings/7bit.rb +31 -0
- data/vendor/mail/lib/mail/encodings/8bit.rb +31 -0
- data/vendor/mail/lib/mail/encodings/base64.rb +33 -0
- data/vendor/mail/lib/mail/encodings/binary.rb +31 -0
- data/vendor/mail/lib/mail/encodings/quoted_printable.rb +38 -0
- data/vendor/mail/lib/mail/encodings/transfer_encoding.rb +58 -0
- data/vendor/mail/lib/mail/envelope.rb +35 -0
- data/vendor/mail/lib/mail/field.rb +223 -0
- data/vendor/mail/lib/mail/field_list.rb +33 -0
- data/vendor/mail/lib/mail/fields.rb +35 -0
- data/vendor/mail/lib/mail/fields/bcc_field.rb +56 -0
- data/vendor/mail/lib/mail/fields/cc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/comments_field.rb +41 -0
- data/vendor/mail/lib/mail/fields/common/address_container.rb +16 -0
- data/vendor/mail/lib/mail/fields/common/common_address.rb +125 -0
- data/vendor/mail/lib/mail/fields/common/common_date.rb +42 -0
- data/vendor/mail/lib/mail/fields/common/common_field.rb +50 -0
- data/vendor/mail/lib/mail/fields/common/common_message_id.rb +43 -0
- data/vendor/mail/lib/mail/fields/common/parameter_hash.rb +52 -0
- data/vendor/mail/lib/mail/fields/content_description_field.rb +19 -0
- data/vendor/mail/lib/mail/fields/content_disposition_field.rb +69 -0
- data/vendor/mail/lib/mail/fields/content_id_field.rb +63 -0
- data/vendor/mail/lib/mail/fields/content_location_field.rb +42 -0
- data/vendor/mail/lib/mail/fields/content_transfer_encoding_field.rb +50 -0
- data/vendor/mail/lib/mail/fields/content_type_field.rb +185 -0
- data/vendor/mail/lib/mail/fields/date_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/from_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/in_reply_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/keywords_field.rb +44 -0
- data/vendor/mail/lib/mail/fields/message_id_field.rb +83 -0
- data/vendor/mail/lib/mail/fields/mime_version_field.rb +53 -0
- data/vendor/mail/lib/mail/fields/optional_field.rb +13 -0
- data/vendor/mail/lib/mail/fields/received_field.rb +67 -0
- data/vendor/mail/lib/mail/fields/references_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/reply_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_bcc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_cc_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_date_field.rb +35 -0
- data/vendor/mail/lib/mail/fields/resent_from_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/resent_message_id_field.rb +34 -0
- data/vendor/mail/lib/mail/fields/resent_sender_field.rb +62 -0
- data/vendor/mail/lib/mail/fields/resent_to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/return_path_field.rb +64 -0
- data/vendor/mail/lib/mail/fields/sender_field.rb +67 -0
- data/vendor/mail/lib/mail/fields/structured_field.rb +51 -0
- data/vendor/mail/lib/mail/fields/subject_field.rb +16 -0
- data/vendor/mail/lib/mail/fields/to_field.rb +55 -0
- data/vendor/mail/lib/mail/fields/unstructured_field.rb +166 -0
- data/vendor/mail/lib/mail/header.rb +262 -0
- data/vendor/mail/lib/mail/mail.rb +234 -0
- data/vendor/mail/lib/mail/message.rb +1867 -0
- data/vendor/mail/lib/mail/network.rb +9 -0
- data/vendor/mail/lib/mail/network/delivery_methods/file_delivery.rb +40 -0
- data/vendor/mail/lib/mail/network/delivery_methods/sendmail.rb +62 -0
- data/vendor/mail/lib/mail/network/delivery_methods/smtp.rb +110 -0
- data/vendor/mail/lib/mail/network/delivery_methods/test_mailer.rb +40 -0
- data/vendor/mail/lib/mail/network/retriever_methods/imap.rb +18 -0
- data/vendor/mail/lib/mail/network/retriever_methods/pop3.rb +149 -0
- data/vendor/mail/lib/mail/parsers/address_lists.rb +64 -0
- data/vendor/mail/lib/mail/parsers/address_lists.treetop +19 -0
- data/vendor/mail/lib/mail/parsers/content_disposition.rb +387 -0
- data/vendor/mail/lib/mail/parsers/content_disposition.treetop +46 -0
- data/vendor/mail/lib/mail/parsers/content_location.rb +139 -0
- data/vendor/mail/lib/mail/parsers/content_location.treetop +20 -0
- data/vendor/mail/lib/mail/parsers/content_transfer_encoding.rb +162 -0
- data/vendor/mail/lib/mail/parsers/content_transfer_encoding.treetop +20 -0
- data/vendor/mail/lib/mail/parsers/content_type.rb +539 -0
- data/vendor/mail/lib/mail/parsers/content_type.treetop +58 -0
- data/vendor/mail/lib/mail/parsers/date_time.rb +114 -0
- data/vendor/mail/lib/mail/parsers/date_time.treetop +11 -0
- data/vendor/mail/lib/mail/parsers/envelope_from.rb +194 -0
- data/vendor/mail/lib/mail/parsers/envelope_from.treetop +32 -0
- data/vendor/mail/lib/mail/parsers/message_ids.rb +45 -0
- data/vendor/mail/lib/mail/parsers/message_ids.treetop +15 -0
- data/vendor/mail/lib/mail/parsers/mime_version.rb +144 -0
- data/vendor/mail/lib/mail/parsers/mime_version.treetop +19 -0
- data/vendor/mail/lib/mail/parsers/phrase_lists.rb +45 -0
- data/vendor/mail/lib/mail/parsers/phrase_lists.treetop +15 -0
- data/vendor/mail/lib/mail/parsers/received.rb +71 -0
- data/vendor/mail/lib/mail/parsers/received.treetop +11 -0
- data/vendor/mail/lib/mail/parsers/rfc2045.rb +464 -0
- data/vendor/mail/lib/mail/parsers/rfc2045.treetop +36 -0
- data/vendor/mail/lib/mail/parsers/rfc2822.rb +5318 -0
- data/vendor/mail/lib/mail/parsers/rfc2822.treetop +410 -0
- data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.rb +3757 -0
- data/vendor/mail/lib/mail/parsers/rfc2822_obsolete.treetop +241 -0
- data/vendor/mail/lib/mail/part.rb +102 -0
- data/vendor/mail/lib/mail/parts_list.rb +34 -0
- data/vendor/mail/lib/mail/patterns.rb +30 -0
- data/vendor/mail/lib/mail/utilities.rb +181 -0
- data/vendor/mail/lib/mail/version.rb +10 -0
- data/vendor/mail/lib/mail/version_specific/ruby_1_8.rb +97 -0
- data/vendor/mail/lib/mail/version_specific/ruby_1_9.rb +87 -0
- data/vendor/mail/lib/tasks/corpus.rake +125 -0
- data/vendor/mail/lib/tasks/treetop.rake +10 -0
- data/vendor/mail/mail.gemspec +20 -0
- data/vendor/mail/reference/US ASCII Table.txt +130 -0
- data/vendor/mail/reference/rfc1035 Domain Implementation and Specification.txt +3083 -0
- data/vendor/mail/reference/rfc1049 Content-Type Header Field for Internet Messages.txt +451 -0
- data/vendor/mail/reference/rfc1344 Implications of MIME for Internet Mail Gateways.txt +586 -0
- data/vendor/mail/reference/rfc1345 Character Mnemonics & Character Sets.txt +5761 -0
- data/vendor/mail/reference/rfc1524 A User Agent Configuration Mechanism For Multimedia Mail Format Information.txt +675 -0
- data/vendor/mail/reference/rfc1652 SMTP Service Extension for 8bit-MIMEtransport.txt +339 -0
- data/vendor/mail/reference/rfc1892 Multipart Report .txt +227 -0
- data/vendor/mail/reference/rfc1893 Mail System Status Codes.txt +843 -0
- data/vendor/mail/reference/rfc2045 Multipurpose Internet Mail Extensions (1).txt +1739 -0
- data/vendor/mail/reference/rfc2046 Multipurpose Internet Mail Extensions (2).txt +2467 -0
- data/vendor/mail/reference/rfc2047 Multipurpose Internet Mail Extensions (3).txt +843 -0
- data/vendor/mail/reference/rfc2048 Multipurpose Internet Mail Extensions (4).txt +1180 -0
- data/vendor/mail/reference/rfc2049 Multipurpose Internet Mail Extensions (5).txt +1347 -0
- data/vendor/mail/reference/rfc2111 Content-ID and Message-ID URLs.txt +283 -0
- data/vendor/mail/reference/rfc2183 Content-Disposition Header Field.txt +675 -0
- data/vendor/mail/reference/rfc2231 MIME Parameter Value and Encoded Word Extensions.txt +563 -0
- data/vendor/mail/reference/rfc2387 MIME Multipart-Related Content-type.txt +563 -0
- data/vendor/mail/reference/rfc2821 Simple Mail Transfer Protocol.txt +3711 -0
- data/vendor/mail/reference/rfc2822 Internet Message Format.txt +2859 -0
- data/vendor/mail/reference/rfc3462 Reporting of Mail System Administrative Messages.txt +396 -0
- data/vendor/mail/reference/rfc3696 Checking and Transformation of Names.txt +898 -0
- data/vendor/mail/reference/rfc4155 The application-mbox Media Type.txt +502 -0
- data/vendor/mail/reference/rfc4234 Augmented BNF for Syntax Specifications: ABNF.txt +899 -0
- data/vendor/mail/reference/rfc822 Standard for the Format of ARPA Internet Text Messages.txt +2900 -0
- data/vendor/mail/spec/environment.rb +15 -0
- data/vendor/mail/spec/features/making_a_new_message.feature +14 -0
- data/vendor/mail/spec/features/steps/env.rb +6 -0
- data/vendor/mail/spec/features/steps/making_a_new_message_steps.rb +11 -0
- data/vendor/mail/spec/fixtures/attachments/basic_email.eml +31 -0
- data/vendor/mail/spec/fixtures/attachments/test.gif +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.jpg +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.pdf +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.png +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.tiff +0 -0
- data/vendor/mail/spec/fixtures/attachments/test.zip +0 -0
- data/vendor/mail/spec/fixtures/attachments//343/201/246/343/201/231/343/201/250.txt +2 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_disposition.eml +29 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_content_location.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_message_rfc822.eml +92 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_only_email.eml +17 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_pdf.eml +70 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_encoded_name.eml +47 -0
- data/vendor/mail/spec/fixtures/emails/attachment_emails/attachment_with_quoted_filename.eml +60 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/cant_parse_from.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_7-bit.eml +231 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_empty.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_plain.eml +148 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_qp_with_space.eml +53 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_spam.eml +44 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_text-html.eml +50 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_8bits.eml +770 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_with_semi_colon.eml +269 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/content_transfer_encoding_x_uuencode.eml +79 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/empty_group_lists.eml +162 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/header_fields_with_empty_values.eml +33 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/missing_body.eml +16 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/missing_content_disposition.eml +43 -0
- data/vendor/mail/spec/fixtures/emails/error_emails/multiple_content_types.eml +25 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email11.eml +34 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email12.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email2.eml +114 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email4.eml +59 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email7.eml +66 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_encoded_stack_level_too_deep.eml +53 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_illegal_boundary.eml +58 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_mimepart_without_content_type.eml +94 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_multipart_mixed_quoted_boundary.eml +50 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_nested_attachment.eml +100 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/raw_email_with_quoted_illegal_boundary.eml +58 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/sig_only_email.eml +29 -0
- data/vendor/mail/spec/fixtures/emails/mime_emails/two_from_in_message.eml +42 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment.eml +27 -0
- data/vendor/mail/spec/fixtures/emails/multi_charset/japanese_attachment_long_name.eml +44 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce1.eml +179 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/multi_address_bounce2.eml +179 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_422.eml +98 -0
- data/vendor/mail/spec/fixtures/emails/multipart_report_emails/report_530.eml +97 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/basic_email.eml +31 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email10.eml +20 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email5.eml +19 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email6.eml +20 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email8.eml +47 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_bad_time.eml +62 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_double_at_in_header.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_incorrect_header.eml +28 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_multiple_from.eml +30 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_quoted_with_0d0a.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_reply.eml +32 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_simple.eml +11 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_string_in_date_field.eml +17 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_trailing_dot.eml +21 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_bad_date.eml +48 -0
- data/vendor/mail/spec/fixtures/emails/plain_emails/raw_email_with_partially_quoted_subject.eml +14 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example01.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example02.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example03.eml +7 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example04.eml +7 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example05.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example06.eml +10 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example07.eml +9 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example08.eml +12 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example09.eml +15 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example10.eml +15 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example11.eml +6 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example12.eml +8 -0
- data/vendor/mail/spec/fixtures/emails/rfc2822/example13.eml +10 -0
- data/vendor/mail/spec/fixtures/emails/sample_output_multipart +0 -0
- data/vendor/mail/spec/mail/attachments_list_spec.rb +214 -0
- data/vendor/mail/spec/mail/body_spec.rb +385 -0
- data/vendor/mail/spec/mail/configuration_spec.rb +19 -0
- data/vendor/mail/spec/mail/core_extensions/string_spec.rb +62 -0
- data/vendor/mail/spec/mail/core_extensions_spec.rb +99 -0
- data/vendor/mail/spec/mail/elements/address_list_spec.rb +109 -0
- data/vendor/mail/spec/mail/elements/address_spec.rb +609 -0
- data/vendor/mail/spec/mail/elements/date_time_element_spec.rb +20 -0
- data/vendor/mail/spec/mail/elements/envelope_from_element_spec.rb +31 -0
- data/vendor/mail/spec/mail/elements/message_ids_element_spec.rb +43 -0
- data/vendor/mail/spec/mail/elements/phrase_list_spec.rb +22 -0
- data/vendor/mail/spec/mail/elements/received_element_spec.rb +34 -0
- data/vendor/mail/spec/mail/encoding_spec.rb +189 -0
- data/vendor/mail/spec/mail/encodings/base64_spec.rb +25 -0
- data/vendor/mail/spec/mail/encodings/quoted_printable_spec.rb +25 -0
- data/vendor/mail/spec/mail/encodings_spec.rb +664 -0
- data/vendor/mail/spec/mail/example_emails_spec.rb +303 -0
- data/vendor/mail/spec/mail/field_list_spec.rb +33 -0
- data/vendor/mail/spec/mail/field_spec.rb +198 -0
- data/vendor/mail/spec/mail/fields/bcc_field_spec.rb +89 -0
- data/vendor/mail/spec/mail/fields/cc_field_spec.rb +79 -0
- data/vendor/mail/spec/mail/fields/comments_field_spec.rb +25 -0
- data/vendor/mail/spec/mail/fields/common/address_container_spec.rb +18 -0
- data/vendor/mail/spec/mail/fields/common/common_address_spec.rb +132 -0
- data/vendor/mail/spec/mail/fields/common/common_date_spec.rb +25 -0
- data/vendor/mail/spec/mail/fields/common/common_field_spec.rb +69 -0
- data/vendor/mail/spec/mail/fields/common/common_message_id_spec.rb +30 -0
- data/vendor/mail/spec/mail/fields/common/parameter_hash_spec.rb +56 -0
- data/vendor/mail/spec/mail/fields/content_description_field_spec.rb +39 -0
- data/vendor/mail/spec/mail/fields/content_disposition_field_spec.rb +55 -0
- data/vendor/mail/spec/mail/fields/content_id_field_spec.rb +117 -0
- data/vendor/mail/spec/mail/fields/content_location_field_spec.rb +46 -0
- data/vendor/mail/spec/mail/fields/content_transfer_encoding_field_spec.rb +113 -0
- data/vendor/mail/spec/mail/fields/content_type_field_spec.rb +678 -0
- data/vendor/mail/spec/mail/fields/date_field_spec.rb +73 -0
- data/vendor/mail/spec/mail/fields/envelope_spec.rb +48 -0
- data/vendor/mail/spec/mail/fields/from_field_spec.rb +89 -0
- data/vendor/mail/spec/mail/fields/in_reply_to_field_spec.rb +62 -0
- data/vendor/mail/spec/mail/fields/keywords_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/message_id_field_spec.rb +147 -0
- data/vendor/mail/spec/mail/fields/mime_version_field_spec.rb +166 -0
- data/vendor/mail/spec/mail/fields/received_field_spec.rb +44 -0
- data/vendor/mail/spec/mail/fields/references_field_spec.rb +35 -0
- data/vendor/mail/spec/mail/fields/reply_to_field_spec.rb +67 -0
- data/vendor/mail/spec/mail/fields/resent_bcc_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_cc_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_date_field_spec.rb +39 -0
- data/vendor/mail/spec/mail/fields/resent_from_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/resent_message_id_field_spec.rb +24 -0
- data/vendor/mail/spec/mail/fields/resent_sender_field_spec.rb +58 -0
- data/vendor/mail/spec/mail/fields/resent_to_field_spec.rb +66 -0
- data/vendor/mail/spec/mail/fields/return_path_field_spec.rb +52 -0
- data/vendor/mail/spec/mail/fields/sender_field_spec.rb +58 -0
- data/vendor/mail/spec/mail/fields/structured_field_spec.rb +72 -0
- data/vendor/mail/spec/mail/fields/to_field_spec.rb +92 -0
- data/vendor/mail/spec/mail/fields/unstructured_field_spec.rb +134 -0
- data/vendor/mail/spec/mail/header_spec.rb +578 -0
- data/vendor/mail/spec/mail/mail_spec.rb +34 -0
- data/vendor/mail/spec/mail/message_spec.rb +1409 -0
- data/vendor/mail/spec/mail/mime_messages_spec.rb +435 -0
- data/vendor/mail/spec/mail/multipart_report_spec.rb +112 -0
- data/vendor/mail/spec/mail/network/delivery_methods/file_delivery_spec.rb +79 -0
- data/vendor/mail/spec/mail/network/delivery_methods/sendmail_spec.rb +125 -0
- data/vendor/mail/spec/mail/network/delivery_methods/smtp_spec.rb +133 -0
- data/vendor/mail/spec/mail/network/delivery_methods/test_mailer_spec.rb +57 -0
- data/vendor/mail/spec/mail/network/retriever_methods/pop3_spec.rb +180 -0
- data/vendor/mail/spec/mail/network_spec.rb +359 -0
- data/vendor/mail/spec/mail/parsers/address_lists_parser_spec.rb +15 -0
- data/vendor/mail/spec/mail/parsers/content_transfer_encoding_parser_spec.rb +72 -0
- data/vendor/mail/spec/mail/part_spec.rb +129 -0
- data/vendor/mail/spec/mail/parts_list_spec.rb +12 -0
- data/vendor/mail/spec/mail/round_tripping_spec.rb +44 -0
- data/vendor/mail/spec/mail/utilities_spec.rb +327 -0
- data/vendor/mail/spec/mail/version_specific/escape_paren_1_8_spec.rb +32 -0
- data/vendor/mail/spec/matchers/break_down_to.rb +35 -0
- data/vendor/mail/spec/spec_helper.rb +163 -0
- metadata +442 -0
@@ -0,0 +1,9 @@
|
|
1
|
+
module Mail
|
2
|
+
autoload :SMTP, 'mail/network/delivery_methods/smtp'
|
3
|
+
autoload :FileDelivery, 'mail/network/delivery_methods/file_delivery'
|
4
|
+
autoload :Sendmail, 'mail/network/delivery_methods/sendmail'
|
5
|
+
autoload :TestMailer, 'mail/network/delivery_methods/test_mailer'
|
6
|
+
|
7
|
+
autoload :POP3, 'mail/network/retriever_methods/pop3'
|
8
|
+
autoload :IMAP, 'mail/network/retriever_methods/imap'
|
9
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Mail
|
2
|
+
|
3
|
+
# FileDelivery class delivers emails into multiple files based on the destination
|
4
|
+
# address. Each file is appended to if it already exists.
|
5
|
+
#
|
6
|
+
# So if you have an email going to fred@test, bob@test, joe@anothertest, and you
|
7
|
+
# set your location path to /path/to/mails then FileDelivery will create the directory
|
8
|
+
# if it does not exist, and put one copy of the email in three files, called
|
9
|
+
# "fred@test", "bob@test" and "joe@anothertest"
|
10
|
+
#
|
11
|
+
# Make sure the path you specify with :location is writable by the Ruby process
|
12
|
+
# running Mail.
|
13
|
+
class FileDelivery
|
14
|
+
|
15
|
+
if RUBY_VERSION >= '1.9.1'
|
16
|
+
require 'fileutils'
|
17
|
+
else
|
18
|
+
require 'ftools'
|
19
|
+
end
|
20
|
+
|
21
|
+
def initialize(values)
|
22
|
+
self.settings = { :location => './mails' }.merge!(values)
|
23
|
+
end
|
24
|
+
|
25
|
+
attr_accessor :settings
|
26
|
+
|
27
|
+
def deliver!(mail)
|
28
|
+
if ::File.respond_to?(:makedirs)
|
29
|
+
::File.makedirs settings[:location]
|
30
|
+
else
|
31
|
+
::FileUtils.mkdir_p settings[:location]
|
32
|
+
end
|
33
|
+
|
34
|
+
mail.destinations.uniq.each do |to|
|
35
|
+
::File.open(::File.join(settings[:location], to), 'a') { |f| "#{f.write(mail.encoded)}\r\n\r\n" }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
module Mail
|
2
|
+
# A delivery method implementation which sends via sendmail.
|
3
|
+
#
|
4
|
+
# To use this, first find out where the sendmail binary is on your computer,
|
5
|
+
# if you are on a mac or unix box, it is usually in /usr/sbin/sendmail, this will
|
6
|
+
# be your sendmail location.
|
7
|
+
#
|
8
|
+
# Mail.defaults do
|
9
|
+
# delivery_method :sendmail
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# Or if your sendmail binary is not at '/usr/sbin/sendmail'
|
13
|
+
#
|
14
|
+
# Mail.defaults do
|
15
|
+
# delivery_method :sendmail, :location => '/absolute/path/to/your/sendmail'
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# Then just deliver the email as normal:
|
19
|
+
#
|
20
|
+
# Mail.deliver do
|
21
|
+
# to 'mikel@test.lindsaar.net'
|
22
|
+
# from 'ada@test.lindsaar.net'
|
23
|
+
# subject 'testing sendmail'
|
24
|
+
# body 'testing sendmail'
|
25
|
+
# end
|
26
|
+
#
|
27
|
+
# Or by calling deliver on a Mail message
|
28
|
+
#
|
29
|
+
# mail = Mail.new do
|
30
|
+
# to 'mikel@test.lindsaar.net'
|
31
|
+
# from 'ada@test.lindsaar.net'
|
32
|
+
# subject 'testing sendmail'
|
33
|
+
# body 'testing sendmail'
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# mail.deliver!
|
37
|
+
class Sendmail
|
38
|
+
|
39
|
+
def initialize(values)
|
40
|
+
self.settings = { :location => '/usr/sbin/sendmail',
|
41
|
+
:arguments => '-i -t' }.merge(values)
|
42
|
+
end
|
43
|
+
|
44
|
+
attr_accessor :settings
|
45
|
+
|
46
|
+
def deliver!(mail)
|
47
|
+
envelope_from = mail.return_path || mail.sender || mail.from_addrs.first
|
48
|
+
return_path = "-f \"#{envelope_from}\"" if envelope_from
|
49
|
+
|
50
|
+
arguments = [settings[:arguments], return_path].compact.join(" ")
|
51
|
+
|
52
|
+
Sendmail.call(settings[:location], arguments, mail.destinations.join(" "), mail)
|
53
|
+
end
|
54
|
+
|
55
|
+
def Sendmail.call(path, arguments, destinations, mail)
|
56
|
+
IO.popen("#{path} #{arguments} #{destinations}", "w+") do |io|
|
57
|
+
io.puts mail.encoded.to_lf
|
58
|
+
io.flush
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
module Mail
|
2
|
+
# == Sending Email with SMTP
|
3
|
+
#
|
4
|
+
# Mail allows you to send emails using SMTP. This is done by wrapping Net::SMTP in
|
5
|
+
# an easy to use manner.
|
6
|
+
#
|
7
|
+
# === Sending via SMTP server on Localhost
|
8
|
+
#
|
9
|
+
# Sending locally (to a postfix or sendmail server running on localhost) requires
|
10
|
+
# no special setup. Just to Mail.deliver &block or message.deliver! and it will
|
11
|
+
# be sent in this method.
|
12
|
+
#
|
13
|
+
# === Sending via MobileMe
|
14
|
+
#
|
15
|
+
# Mail.defaults do
|
16
|
+
# delivery_method :smtp, { :address => "smtp.me.com",
|
17
|
+
# :port => 587,
|
18
|
+
# :domain => 'your.host.name',
|
19
|
+
# :user_name => '<username>',
|
20
|
+
# :password => '<password>',
|
21
|
+
# :authentication => 'plain',
|
22
|
+
# :enable_starttls_auto => true }
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# === Sending via GMail
|
26
|
+
#
|
27
|
+
# Mail.defaults do
|
28
|
+
# delivery_method :smtp, { :address => "smtp.gmail.com",
|
29
|
+
# :port => 587,
|
30
|
+
# :domain => 'your.host.name',
|
31
|
+
# :user_name => '<username>',
|
32
|
+
# :password => '<password>',
|
33
|
+
# :authentication => 'plain',
|
34
|
+
# :enable_starttls_auto => true }
|
35
|
+
# end
|
36
|
+
#
|
37
|
+
# === Others
|
38
|
+
#
|
39
|
+
# Feel free to send me other examples that were tricky
|
40
|
+
#
|
41
|
+
# === Delivering the email
|
42
|
+
#
|
43
|
+
# Once you have the settings right, sending the email is done by:
|
44
|
+
#
|
45
|
+
# Mail.deliver do
|
46
|
+
# to 'mikel@test.lindsaar.net'
|
47
|
+
# from 'ada@test.lindsaar.net'
|
48
|
+
# subject 'testing sendmail'
|
49
|
+
# body 'testing sendmail'
|
50
|
+
# end
|
51
|
+
#
|
52
|
+
# Or by calling deliver on a Mail message
|
53
|
+
#
|
54
|
+
# mail = Mail.new do
|
55
|
+
# to 'mikel@test.lindsaar.net'
|
56
|
+
# from 'ada@test.lindsaar.net'
|
57
|
+
# subject 'testing sendmail'
|
58
|
+
# body 'testing sendmail'
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# mail.deliver!
|
62
|
+
class SMTP
|
63
|
+
|
64
|
+
def initialize(values)
|
65
|
+
self.settings = { :address => "localhost",
|
66
|
+
:port => 25,
|
67
|
+
:domain => 'localhost.localdomain',
|
68
|
+
:user_name => nil,
|
69
|
+
:password => nil,
|
70
|
+
:authentication => nil,
|
71
|
+
:enable_starttls_auto => true }.merge!(values)
|
72
|
+
end
|
73
|
+
|
74
|
+
attr_accessor :settings
|
75
|
+
|
76
|
+
# Send the message via SMTP.
|
77
|
+
# The from and to attributes are optional. If not set, they are retrieve from the Message.
|
78
|
+
def deliver!(mail)
|
79
|
+
|
80
|
+
# Set the envelope from to be either the return-path, the sender or the first from address
|
81
|
+
envelope_from = mail.return_path || mail.sender || mail.from_addrs.first
|
82
|
+
if envelope_from.blank?
|
83
|
+
raise ArgumentError.new('A sender (Return-Path, Sender or From) required to send a message')
|
84
|
+
end
|
85
|
+
|
86
|
+
destinations ||= mail.destinations if mail.respond_to?(:destinations) && mail.destinations
|
87
|
+
if destinations.blank?
|
88
|
+
raise ArgumentError.new('At least one recipient (To, Cc or Bcc) is required to send a message')
|
89
|
+
end
|
90
|
+
|
91
|
+
message ||= mail.encoded if mail.respond_to?(:encoded)
|
92
|
+
if message.blank?
|
93
|
+
raise ArgumentError.new('A encoded content is required to send a message')
|
94
|
+
end
|
95
|
+
|
96
|
+
smtp = Net::SMTP.new(settings[:address], settings[:port])
|
97
|
+
if settings[:enable_starttls_auto]
|
98
|
+
smtp.enable_starttls_auto if smtp.respond_to?(:enable_starttls_auto)
|
99
|
+
end
|
100
|
+
|
101
|
+
smtp.start(settings[:domain], settings[:user_name], settings[:password], settings[:authentication]) do |smtp|
|
102
|
+
smtp.sendmail(message, envelope_from, destinations)
|
103
|
+
end
|
104
|
+
|
105
|
+
self
|
106
|
+
end
|
107
|
+
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Mail
|
2
|
+
# The TestMailer is a bare bones mailer that does nothing. It is useful
|
3
|
+
# when you are testing.
|
4
|
+
#
|
5
|
+
# It also provides a template of the minimum methods you require to implement
|
6
|
+
# if you want to make a custom mailer for Mail
|
7
|
+
class TestMailer
|
8
|
+
|
9
|
+
# Provides a store of all the emails sent with the TestMailer so you can check them.
|
10
|
+
def TestMailer.deliveries
|
11
|
+
@@deliveries ||= []
|
12
|
+
end
|
13
|
+
|
14
|
+
# Allows you to over write the default deliveries store from an array to some
|
15
|
+
# other object. If you just want to clear the store,
|
16
|
+
# call TestMailer.deliveries.clear.
|
17
|
+
#
|
18
|
+
# If you place another object here, please make sure it responds to:
|
19
|
+
#
|
20
|
+
# * << (message)
|
21
|
+
# * clear
|
22
|
+
# * length
|
23
|
+
# * size
|
24
|
+
# * and other common Array methods
|
25
|
+
def TestMailer.deliveries=(val)
|
26
|
+
@@deliveries = val
|
27
|
+
end
|
28
|
+
|
29
|
+
def initialize(values)
|
30
|
+
@settings = {}
|
31
|
+
end
|
32
|
+
|
33
|
+
attr_accessor :settings
|
34
|
+
|
35
|
+
def deliver!(mail)
|
36
|
+
Mail::TestMailer.deliveries << mail
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Mail
|
2
|
+
class IMAP
|
3
|
+
|
4
|
+
def initialize(values)
|
5
|
+
self.settings = { :address => "localhost",
|
6
|
+
:port => 110,
|
7
|
+
:user_name => nil,
|
8
|
+
:password => nil,
|
9
|
+
:authentication => nil,
|
10
|
+
:enable_ssl => false }.merge!(values)
|
11
|
+
end
|
12
|
+
|
13
|
+
def IMAP.get_messages(&block)
|
14
|
+
# To be implemented
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Mail
|
4
|
+
# The Pop3 retriever allows to get the last, first or all emails from a POP3 server.
|
5
|
+
# Each email retrieved (RFC2822) is given as an instance of +Message+.
|
6
|
+
#
|
7
|
+
# While being retrieved, emails can be yielded if a block is given.
|
8
|
+
#
|
9
|
+
# === Example of retrieving Emails from GMail:
|
10
|
+
#
|
11
|
+
# Mail.defaults do
|
12
|
+
# retriever_method :pop3, { :address => "pop.gmail.com",
|
13
|
+
# :port => 995,
|
14
|
+
# :user_name => '<username>',
|
15
|
+
# :password => '<password>',
|
16
|
+
# :enable_ssl => true }
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# Mail.all #=> Returns an array of all emails
|
20
|
+
# Mail.first #=> Returns the first unread email
|
21
|
+
# Mail.last #=> Returns the first unread email
|
22
|
+
#
|
23
|
+
# You can also pass options into Mail.find to locate an email in your pop mailbox
|
24
|
+
# with the following options:
|
25
|
+
#
|
26
|
+
# what: last or first emails. The default is :first.
|
27
|
+
# order: order of emails returned. Possible values are :asc or :desc. Default value is :asc.
|
28
|
+
# count: number of emails to retrieve. The default value is 10. A value of 1 returns an
|
29
|
+
# instance of Message, not an array of Message instances.
|
30
|
+
#
|
31
|
+
# Mail.find(:what => :first, :count => 10, :order => :asc)
|
32
|
+
# #=> Returns the first 10 emails in ascending order
|
33
|
+
#
|
34
|
+
class POP3
|
35
|
+
require 'net/pop'
|
36
|
+
|
37
|
+
def initialize(values)
|
38
|
+
self.settings = { :address => "localhost",
|
39
|
+
:port => 110,
|
40
|
+
:user_name => nil,
|
41
|
+
:password => nil,
|
42
|
+
:authentication => nil,
|
43
|
+
:enable_ssl => false }.merge!(values)
|
44
|
+
end
|
45
|
+
|
46
|
+
attr_accessor :settings
|
47
|
+
|
48
|
+
# Get the oldest received email(s)
|
49
|
+
#
|
50
|
+
# Possible options:
|
51
|
+
# count: number of emails to retrieve. The default value is 1.
|
52
|
+
# order: order of emails returned. Possible values are :asc or :desc. Default value is :asc.
|
53
|
+
#
|
54
|
+
def first(options = {}, &block)
|
55
|
+
options ||= {}
|
56
|
+
options[:what] = :first
|
57
|
+
options[:count] ||= 1
|
58
|
+
find(options, &block)
|
59
|
+
end
|
60
|
+
|
61
|
+
# Get the most recent received email(s)
|
62
|
+
#
|
63
|
+
# Possible options:
|
64
|
+
# count: number of emails to retrieve. The default value is 1.
|
65
|
+
# order: order of emails returned. Possible values are :asc or :desc. Default value is :asc.
|
66
|
+
#
|
67
|
+
def last(options = {}, &block)
|
68
|
+
options ||= {}
|
69
|
+
options[:what] = :last
|
70
|
+
options[:count] ||= 1
|
71
|
+
find(options, &block)
|
72
|
+
end
|
73
|
+
|
74
|
+
# Get all emails.
|
75
|
+
#
|
76
|
+
# Possible options:
|
77
|
+
# order: order of emails returned. Possible values are :asc or :desc. Default value is :asc.
|
78
|
+
#
|
79
|
+
def all(options = {}, &block)
|
80
|
+
options ||= {}
|
81
|
+
options[:count] = :all
|
82
|
+
find(options, &block)
|
83
|
+
end
|
84
|
+
|
85
|
+
# Find emails in a POP3 mailbox. Without any options, the 5 last received emails are returned.
|
86
|
+
#
|
87
|
+
# Possible options:
|
88
|
+
# what: last or first emails. The default is :first.
|
89
|
+
# order: order of emails returned. Possible values are :asc or :desc. Default value is :asc.
|
90
|
+
# count: number of emails to retrieve. The default value is 10. A value of 1 returns an
|
91
|
+
# instance of Message, not an array of Message instances.
|
92
|
+
#
|
93
|
+
def find(options = {}, &block)
|
94
|
+
options = validate_options(options)
|
95
|
+
|
96
|
+
start do |pop3|
|
97
|
+
mails = pop3.mails
|
98
|
+
mails.sort! { |m1, m2| m2.number <=> m1.number } if options[:what] == :last
|
99
|
+
mails = mails.first(options[:count]) if options[:count].is_a? Integer
|
100
|
+
|
101
|
+
if options[:what].to_sym == :last && options[:order].to_sym == :desc ||
|
102
|
+
options[:what].to_sym == :first && options[:order].to_sym == :asc ||
|
103
|
+
mails.reverse!
|
104
|
+
end
|
105
|
+
|
106
|
+
if block_given?
|
107
|
+
mails.each do |mail|
|
108
|
+
yield Mail.new(mail.pop)
|
109
|
+
end
|
110
|
+
else
|
111
|
+
emails = []
|
112
|
+
mails.each do |mail|
|
113
|
+
emails << Mail.new(mail.pop)
|
114
|
+
end
|
115
|
+
emails.size == 1 && options[:count] == 1 ? emails.first : emails
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
private
|
122
|
+
|
123
|
+
# Set default options
|
124
|
+
def validate_options(options)
|
125
|
+
options ||= {}
|
126
|
+
options[:count] ||= 10
|
127
|
+
options[:order] ||= :asc
|
128
|
+
options[:what] ||= :first
|
129
|
+
options
|
130
|
+
end
|
131
|
+
|
132
|
+
# Start a POP3 session and ensures that it will be closed in any case.
|
133
|
+
def start(config = Mail::Configuration.instance, &block)
|
134
|
+
raise ArgumentError.new("Mail::Retrievable#pop3_start takes a block") unless block_given?
|
135
|
+
|
136
|
+
pop3 = Net::POP3.new(settings[:address], settings[:port], isapop = false)
|
137
|
+
pop3.enable_ssl(verify = OpenSSL::SSL::VERIFY_NONE) if settings[:enable_ssl]
|
138
|
+
pop3.start(settings[:user_name], settings[:password])
|
139
|
+
|
140
|
+
yield pop3
|
141
|
+
ensure
|
142
|
+
if defined?(pop3) && pop3 && pop3.started?
|
143
|
+
pop3.reset # This clears all "deleted" marks from messages.
|
144
|
+
pop3.finish
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
end
|
149
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# Autogenerated from a Treetop grammar. Edits may be lost.
|
2
|
+
|
3
|
+
|
4
|
+
module Mail
|
5
|
+
module AddressLists
|
6
|
+
include Treetop::Runtime
|
7
|
+
|
8
|
+
def root
|
9
|
+
@root ||= :primary_address
|
10
|
+
end
|
11
|
+
|
12
|
+
include RFC2822
|
13
|
+
|
14
|
+
module PrimaryAddress0
|
15
|
+
def addresses
|
16
|
+
[first_addr] + other_addr.elements.map { |o| o.addr_value }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module PrimaryAddress1
|
21
|
+
def addresses
|
22
|
+
[first_addr] + other_addr.elements.map { |o| o.addr_value }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def _nt_primary_address
|
27
|
+
start_index = index
|
28
|
+
if node_cache[:primary_address].has_key?(index)
|
29
|
+
cached = node_cache[:primary_address][index]
|
30
|
+
if cached
|
31
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
32
|
+
@index = cached.interval.end
|
33
|
+
end
|
34
|
+
return cached
|
35
|
+
end
|
36
|
+
|
37
|
+
i0 = index
|
38
|
+
r1 = _nt_address_list
|
39
|
+
r1.extend(PrimaryAddress0)
|
40
|
+
if r1
|
41
|
+
r0 = r1
|
42
|
+
else
|
43
|
+
r2 = _nt_obs_addr_list
|
44
|
+
r2.extend(PrimaryAddress1)
|
45
|
+
if r2
|
46
|
+
r0 = r2
|
47
|
+
else
|
48
|
+
@index = i0
|
49
|
+
r0 = nil
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
node_cache[:primary_address][start_index] = r0
|
54
|
+
|
55
|
+
r0
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
class AddressListsParser < Treetop::Runtime::CompiledParser
|
61
|
+
include AddressLists
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|