mail 2.1.5 → 2.1.5.1
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.
- data/CHANGELOG.rdoc +7 -0
- data/Rakefile +4 -7
- data/lib/mail.rb +17 -54
- data/lib/mail/elements.rb +15 -0
- data/lib/mail/{encodings/encodings.rb → encodings.rb} +1 -0
- data/lib/mail/encodings/7bit.rb +2 -0
- data/lib/mail/encodings/8bit.rb +2 -0
- data/lib/mail/encodings/base64.rb +2 -0
- data/lib/mail/encodings/binary.rb +2 -0
- data/lib/mail/encodings/quoted_printable.rb +2 -0
- data/lib/mail/field.rb +2 -0
- data/lib/mail/fields.rb +35 -0
- data/lib/mail/fields/bcc_field.rb +2 -0
- data/lib/mail/fields/cc_field.rb +2 -0
- data/lib/mail/fields/common/common_address.rb +99 -111
- data/lib/mail/fields/common/common_date.rb +30 -39
- data/lib/mail/fields/common/common_field.rb +39 -53
- data/lib/mail/fields/common/common_message_id.rb +30 -44
- data/lib/mail/fields/content_disposition_field.rb +2 -3
- data/lib/mail/fields/content_type_field.rb +2 -3
- data/lib/mail/fields/date_field.rb +2 -0
- data/lib/mail/fields/from_field.rb +2 -0
- data/lib/mail/fields/in_reply_to_field.rb +2 -0
- data/lib/mail/fields/message_id_field.rb +2 -0
- data/lib/mail/fields/optional_field.rb +2 -0
- data/lib/mail/fields/references_field.rb +2 -0
- data/lib/mail/fields/reply_to_field.rb +2 -0
- data/lib/mail/fields/resent_bcc_field.rb +2 -0
- data/lib/mail/fields/resent_cc_field.rb +2 -0
- data/lib/mail/fields/resent_date_field.rb +2 -0
- data/lib/mail/fields/resent_from_field.rb +2 -0
- data/lib/mail/fields/resent_message_id_field.rb +2 -0
- data/lib/mail/fields/resent_sender_field.rb +2 -0
- data/lib/mail/fields/resent_to_field.rb +2 -0
- data/lib/mail/fields/return_path_field.rb +2 -0
- data/lib/mail/fields/sender_field.rb +2 -0
- data/lib/mail/fields/structured_field.rb +2 -0
- data/lib/mail/fields/to_field.rb +2 -0
- data/lib/mail/fields/unstructured_field.rb +2 -0
- data/lib/mail/network.rb +9 -0
- data/lib/mail/network/delivery_methods/file_delivery.rb +2 -2
- data/lib/mail/patterns.rb +0 -16
- data/lib/mail/utilities.rb +132 -145
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/History.txt +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/LICENSE +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/README.md +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/Rakefile +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/Treetop.tmbundle/Preferences/Comments.tmPreferences +0 -0
- data/lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Snippets/grammar ___ end.tmSnippet b/data/lib/mail/vendor/treetop-1.4.4/Treetop.tmbundle/Snippets/grammar ___ → end.tmSnippet +0 -0
- data/lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Snippets/rule ___ end.tmSnippet b/data/lib/mail/vendor/treetop-1.4.4/Treetop.tmbundle/Snippets/rule ___ → end.tmSnippet +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/Treetop.tmbundle/Support/nibs/SyntaxTreeViewer.nib/designable.nib +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/Treetop.tmbundle/Support/nibs/SyntaxTreeViewer.nib/keyedobjects.nib +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/Treetop.tmbundle/Support/syntax_tree_viewer.rb +0 -0
- data/lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Syntaxes/Treetop Grammar.tmLanguage b/data/lib/mail/vendor/treetop-1.4.4/Treetop.tmbundle/Syntaxes/Treetop → Grammar.tmLanguage +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/Treetop.tmbundle/info.plist +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/benchmark/seqpar.gnuplot +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/benchmark/seqpar.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/benchmark/seqpar_benchmark.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/bin/tt +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/contributing_and_planned_features.markdown +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/grammar_composition.markdown +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/index.markdown +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/pitfalls_and_advanced_techniques.markdown +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/semantic_interpretation.markdown +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/site.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/sitegen.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/syntactic_recognition.markdown +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/using_in_ruby.markdown +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/arithmetic.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/arithmetic.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/arithmetic_node_classes.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/arithmetic_test.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/lambda_calculus +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/lambda_calculus.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/lambda_calculus.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/lambda_calculus_node_classes.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/lambda_calculus_test.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/test_helper.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop.rb +1 -1
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/bootstrap_gen_1_metagrammar.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/grammar_compiler.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/lexical_address_space.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/metagrammar.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/metagrammar.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/anything_symbol.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/atomic_expression.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/character_class.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/choice.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/declaration_sequence.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/grammar.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/inline_module.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/nonterminal.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/optional.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/parenthesized_expression.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/parsing_expression.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/parsing_rule.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/predicate.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/predicate_block.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/repetition.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/sequence.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/terminal.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/transient_prefix.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/node_classes/treetop_file.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/compiler/ruby_builder.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/polyglot.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/ruby_extensions.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/ruby_extensions/string.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/compiled_parser.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/interval_skip_list.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/interval_skip_list/head_node.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/interval_skip_list/interval_skip_list.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/interval_skip_list/node.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/syntax_node.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/terminal_parse_failure.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/runtime/terminal_syntax_node.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/lib/treetop/version.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/script/generate_metagrammar.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/script/svnadd +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/script/svnrm +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/and_predicate_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/anything_symbol_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/character_class_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/choice_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/circular_compilation_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/failure_propagation_functional_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/grammar_compiler_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/grammar_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/multibyte_chars_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/nonterminal_symbol_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/not_predicate_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/one_or_more_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/optional_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/parenthesized_expression_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/parsing_rule_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/repeated_subrule_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/semantic_predicate_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/sequence_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/terminal_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/terminal_symbol_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/test_grammar.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/test_grammar.tt +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/test_grammar_do.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/tt_compiler_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/compiler/zero_or_more_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/composition/a.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/composition/b.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/composition/c.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/composition/d.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/composition/f.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/composition/grammar_composition_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/composition/subfolder/e_includes_c.treetop +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/ruby_extensions/string_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/compiled_parser_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/delete_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/expire_range_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/insert_and_delete_node.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/insert_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/interval_skip_list_spec.graffle +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/palindromic_fixture.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/interval_skip_list/spec_helper.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/runtime/syntax_node_spec.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/spec/spec_helper.rb +0 -0
- data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/treetop.gemspec +0 -0
- data/lib/mail/vendor/treetop.rb +1 -3
- data/lib/mail/version.rb +2 -1
- data/lib/tasks/corpus.rake +3 -3
- metadata +131 -128
- data/lib/mail/vendor/treetop-1.4.3/Or +0 -0
data/lib/mail/fields/to_field.rb
CHANGED
@@ -26,6 +26,8 @@
|
|
26
26
|
# mail[:to].addresses #=> ['mikel@test.lindsaar.net', 'ada@test.lindsaar.net']
|
27
27
|
# mail[:to].formatted #=> ['Mikel Lindsaar <mikel@test.lindsaar.net>', 'ada@test.lindsaar.net']
|
28
28
|
#
|
29
|
+
require 'mail/fields/common/common_address'
|
30
|
+
|
29
31
|
module Mail
|
30
32
|
class ToField < StructuredField
|
31
33
|
|
data/lib/mail/network.rb
ADDED
@@ -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
|
@@ -4,7 +4,7 @@ module Mail
|
|
4
4
|
# address. Each file is appended to if it already exists.
|
5
5
|
#
|
6
6
|
# So if you have an email going to fred@test, bob@test, joe@anothertest, and you
|
7
|
-
# set your location path to
|
7
|
+
# set your location path to /path/to/mails then FileDelivery will create the directory
|
8
8
|
# if it does not exist, and put one copy of the email in three files, called
|
9
9
|
# "fred@test", "bob@test" and "joe@anothertest"
|
10
10
|
#
|
@@ -37,4 +37,4 @@ module Mail
|
|
37
37
|
end
|
38
38
|
|
39
39
|
end
|
40
|
-
end
|
40
|
+
end
|
data/lib/mail/patterns.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Mail
|
2
2
|
module Patterns
|
3
|
-
|
4
3
|
white_space = %Q|\x9\x20|
|
5
4
|
text = %Q|\x1-\x8\xB\xC\xE-\x7f|
|
6
5
|
field_name = %Q|\x21-\x39\x3b-\x7e|
|
@@ -24,20 +23,5 @@ module Mail
|
|
24
23
|
ATOM_UNSAFE = /[#{Regexp.quote aspecial}#{control}#{lwsp}]/n
|
25
24
|
PHRASE_UNSAFE = /[#{Regexp.quote aspecial}#{control}]/n
|
26
25
|
TOKEN_UNSAFE = /[#{Regexp.quote tspecial}#{control}#{lwsp}]/n
|
27
|
-
|
28
|
-
|
29
|
-
module ClassMethods
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
module InstanceMethods
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.included(receiver)
|
38
|
-
receiver.extend ClassMethods
|
39
|
-
receiver.send :include, InstanceMethods
|
40
|
-
end
|
41
|
-
|
42
26
|
end
|
43
27
|
end
|
data/lib/mail/utilities.rb
CHANGED
@@ -1,163 +1,150 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
module Mail
|
3
3
|
module Utilities
|
4
|
+
include Patterns
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
# Returns true if the string supplied is free from characters not allowed as an ATOM
|
7
|
+
def atom_safe?( str )
|
8
|
+
not ATOM_UNSAFE === str
|
7
9
|
end
|
8
|
-
|
9
|
-
module InstanceMethods
|
10
|
-
|
11
|
-
include Patterns
|
12
|
-
|
13
|
-
# Returns true if the string supplied is free from characters not allowed as an ATOM
|
14
|
-
def atom_safe?( str )
|
15
|
-
not ATOM_UNSAFE === str
|
16
|
-
end
|
17
10
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
11
|
+
# If the string supplied has ATOM unsafe characters in it, will return the string quoted
|
12
|
+
# in double quotes, otherwise returns the string unmodified
|
13
|
+
def quote_atom( str )
|
14
|
+
(ATOM_UNSAFE === str) ? dquote(str) : str
|
15
|
+
end
|
23
16
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
else
|
33
|
-
str.force_encoding(original_encoding)
|
34
|
-
end
|
17
|
+
# If the string supplied has PHRASE unsafe characters in it, will return the string quoted
|
18
|
+
# in double quotes, otherwise returns the string unmodified
|
19
|
+
def quote_phrase( str )
|
20
|
+
if RUBY_VERSION >= '1.9'
|
21
|
+
original_encoding = str.encoding
|
22
|
+
str.force_encoding('ASCII-8BIT')
|
23
|
+
if (PHRASE_UNSAFE === str)
|
24
|
+
dquote(str).force_encoding(original_encoding)
|
35
25
|
else
|
36
|
-
|
26
|
+
str.force_encoding(original_encoding)
|
37
27
|
end
|
28
|
+
else
|
29
|
+
(PHRASE_UNSAFE === str) ? dquote(str) : str
|
38
30
|
end
|
31
|
+
end
|
39
32
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
# If the string supplied has TOKEN unsafe characters in it, will return the string quoted
|
46
|
-
# in double quotes, otherwise returns the string unmodified
|
47
|
-
def quote_token( str )
|
48
|
-
(TOKEN_UNSAFE === str) ? dquote(str) : str
|
49
|
-
end
|
33
|
+
# Returns true if the string supplied is free from characters not allowed as a TOKEN
|
34
|
+
def token_safe?( str )
|
35
|
+
not TOKEN_UNSAFE === str
|
36
|
+
end
|
50
37
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
str = $1 if str =~ /^"(.*)?"$/
|
57
|
-
# First remove all escaped double quotes:
|
58
|
-
str = str.gsub(/\\"/, '"')
|
59
|
-
# Then wrap and re-escape all double quotes
|
60
|
-
'"' + str.gsub(/["]/n) {|s| '\\' + s } + '"'
|
61
|
-
end
|
62
|
-
|
63
|
-
# Unwraps supplied string from inside double quotes.
|
64
|
-
#
|
65
|
-
# Example:
|
66
|
-
#
|
67
|
-
# string = '"This is a string"'
|
68
|
-
# unquote(string) #=> 'This is a string'
|
69
|
-
def unquote( str )
|
70
|
-
str =~ /^"(.*?)"$/ ? $1 : str
|
71
|
-
end
|
72
|
-
|
73
|
-
# Wraps a string in parenthesis and escapes any that are in the string itself.
|
74
|
-
#
|
75
|
-
# Example:
|
76
|
-
#
|
77
|
-
# string
|
78
|
-
def paren( str )
|
79
|
-
RubyVer.paren( str )
|
80
|
-
end
|
81
|
-
|
82
|
-
# Unwraps a string from being wrapped in parenthesis
|
83
|
-
#
|
84
|
-
# Example:
|
85
|
-
#
|
86
|
-
# str = '(This is a string)'
|
87
|
-
# unparen( str ) #=> 'This is a string'
|
88
|
-
def unparen( str )
|
89
|
-
str =~ /^\((.*?)\)$/ ? $1 : str
|
90
|
-
end
|
91
|
-
|
92
|
-
# Escape parenthesies in a string
|
93
|
-
#
|
94
|
-
# Example:
|
95
|
-
#
|
96
|
-
# str = 'This is (a) string'
|
97
|
-
# escape_paren( str ) #=> 'This is \(a\) string'
|
98
|
-
def escape_paren( str )
|
99
|
-
RubyVer.escape_paren( str )
|
100
|
-
end
|
101
|
-
|
102
|
-
# Matches two objects with their to_s values case insensitively
|
103
|
-
#
|
104
|
-
# Example:
|
105
|
-
#
|
106
|
-
# obj2 = "This_is_An_object"
|
107
|
-
# obj1 = :this_IS_an_object
|
108
|
-
# match_to_s( obj1, obj2 ) #=> true
|
109
|
-
def match_to_s( obj1, obj2 )
|
110
|
-
obj1.to_s.downcase == obj2.to_s.downcase
|
111
|
-
end
|
112
|
-
|
113
|
-
# Capitalizes a string that is joined by hyphens correctly.
|
114
|
-
#
|
115
|
-
# Example:
|
116
|
-
#
|
117
|
-
# string = 'resent-from-field'
|
118
|
-
# capitalize_field( string ) #=> 'Resent-From-Field'
|
119
|
-
def capitalize_field( str )
|
120
|
-
str.to_s.split("-").map { |v| v.capitalize }.join("-")
|
121
|
-
end
|
122
|
-
|
123
|
-
# Takes an underscored word and turns it into a class name
|
124
|
-
#
|
125
|
-
# Example:
|
126
|
-
#
|
127
|
-
# constantize("hello") #=> "Hello"
|
128
|
-
# constantize("hello-there") #=> "HelloThere"
|
129
|
-
# constantize("hello-there-mate") #=> "HelloThereMate"
|
130
|
-
def constantize( str )
|
131
|
-
str.to_s.split(/[-_]/).map { |v| v.capitalize }.to_s
|
132
|
-
end
|
133
|
-
|
134
|
-
# Swaps out all underscores (_) for hyphens (-) good for stringing from symbols
|
135
|
-
# a field name.
|
136
|
-
#
|
137
|
-
# Example:
|
138
|
-
#
|
139
|
-
# string = :resent_from_field
|
140
|
-
# dasherize ( string ) #=> 'resent-from-field'
|
141
|
-
def dasherize( str )
|
142
|
-
str.to_s.gsub('_', '-')
|
143
|
-
end
|
38
|
+
# If the string supplied has TOKEN unsafe characters in it, will return the string quoted
|
39
|
+
# in double quotes, otherwise returns the string unmodified
|
40
|
+
def quote_token( str )
|
41
|
+
(TOKEN_UNSAFE === str) ? dquote(str) : str
|
42
|
+
end
|
144
43
|
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
#
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
44
|
+
# Wraps supplied string in double quotes unless it is already wrapped.
|
45
|
+
#
|
46
|
+
# Additionally will escape any double quotation marks in the string with a single
|
47
|
+
# backslash in front of the '"' character.
|
48
|
+
def dquote( str )
|
49
|
+
str = $1 if str =~ /^"(.*)?"$/
|
50
|
+
# First remove all escaped double quotes:
|
51
|
+
str = str.gsub(/\\"/, '"')
|
52
|
+
# Then wrap and re-escape all double quotes
|
53
|
+
'"' + str.gsub(/["]/n) {|s| '\\' + s } + '"'
|
54
|
+
end
|
55
|
+
|
56
|
+
# Unwraps supplied string from inside double quotes.
|
57
|
+
#
|
58
|
+
# Example:
|
59
|
+
#
|
60
|
+
# string = '"This is a string"'
|
61
|
+
# unquote(string) #=> 'This is a string'
|
62
|
+
def unquote( str )
|
63
|
+
str =~ /^"(.*?)"$/ ? $1 : str
|
64
|
+
end
|
65
|
+
|
66
|
+
# Wraps a string in parenthesis and escapes any that are in the string itself.
|
67
|
+
#
|
68
|
+
# Example:
|
69
|
+
#
|
70
|
+
# string
|
71
|
+
def paren( str )
|
72
|
+
RubyVer.paren( str )
|
73
|
+
end
|
74
|
+
|
75
|
+
# Unwraps a string from being wrapped in parenthesis
|
76
|
+
#
|
77
|
+
# Example:
|
78
|
+
#
|
79
|
+
# str = '(This is a string)'
|
80
|
+
# unparen( str ) #=> 'This is a string'
|
81
|
+
def unparen( str )
|
82
|
+
str =~ /^\((.*?)\)$/ ? $1 : str
|
83
|
+
end
|
84
|
+
|
85
|
+
# Escape parenthesies in a string
|
86
|
+
#
|
87
|
+
# Example:
|
88
|
+
#
|
89
|
+
# str = 'This is (a) string'
|
90
|
+
# escape_paren( str ) #=> 'This is \(a\) string'
|
91
|
+
def escape_paren( str )
|
92
|
+
RubyVer.escape_paren( str )
|
156
93
|
end
|
157
94
|
|
158
|
-
|
159
|
-
|
160
|
-
|
95
|
+
# Matches two objects with their to_s values case insensitively
|
96
|
+
#
|
97
|
+
# Example:
|
98
|
+
#
|
99
|
+
# obj2 = "This_is_An_object"
|
100
|
+
# obj1 = :this_IS_an_object
|
101
|
+
# match_to_s( obj1, obj2 ) #=> true
|
102
|
+
def match_to_s( obj1, obj2 )
|
103
|
+
obj1.to_s.downcase == obj2.to_s.downcase
|
161
104
|
end
|
105
|
+
|
106
|
+
# Capitalizes a string that is joined by hyphens correctly.
|
107
|
+
#
|
108
|
+
# Example:
|
109
|
+
#
|
110
|
+
# string = 'resent-from-field'
|
111
|
+
# capitalize_field( string ) #=> 'Resent-From-Field'
|
112
|
+
def capitalize_field( str )
|
113
|
+
str.to_s.split("-").map { |v| v.capitalize }.join("-")
|
114
|
+
end
|
115
|
+
|
116
|
+
# Takes an underscored word and turns it into a class name
|
117
|
+
#
|
118
|
+
# Example:
|
119
|
+
#
|
120
|
+
# constantize("hello") #=> "Hello"
|
121
|
+
# constantize("hello-there") #=> "HelloThere"
|
122
|
+
# constantize("hello-there-mate") #=> "HelloThereMate"
|
123
|
+
def constantize( str )
|
124
|
+
str.to_s.split(/[-_]/).map { |v| v.capitalize }.to_s
|
125
|
+
end
|
126
|
+
|
127
|
+
# Swaps out all underscores (_) for hyphens (-) good for stringing from symbols
|
128
|
+
# a field name.
|
129
|
+
#
|
130
|
+
# Example:
|
131
|
+
#
|
132
|
+
# string = :resent_from_field
|
133
|
+
# dasherize ( string ) #=> 'resent_from_field'
|
134
|
+
def dasherize( str )
|
135
|
+
str.to_s.gsub('_', '-')
|
136
|
+
end
|
137
|
+
|
138
|
+
# Swaps out all underscores (_) for hyphens (-) good for stringing from symbols
|
139
|
+
# a field name.
|
140
|
+
#
|
141
|
+
# Example:
|
142
|
+
#
|
143
|
+
# string = :resent_from_field
|
144
|
+
# underscoreize ( string ) #=> 'resent_from_field'
|
145
|
+
def underscoreize( str )
|
146
|
+
str.to_s.downcase.gsub('-', '_')
|
147
|
+
end
|
148
|
+
|
162
149
|
end
|
163
150
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/Treetop.tmbundle/Support/syntax_tree_viewer.rb
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/contributing_and_planned_features.markdown
RENAMED
File without changes
|
File without changes
|
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/doc/pitfalls_and_advanced_techniques.markdown
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/arithmetic.treetop
RENAMED
File without changes
|
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/arithmetic_test.rb
RENAMED
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/lambda_calculus
RENAMED
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/lambda_calculus.rb
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/lib/mail/vendor/{treetop-1.4.3 → treetop-1.4.4}/examples/lambda_calculus/test_helper.rb
RENAMED
File without changes
|