mail 2.6.4.rc2 → 2.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.rdoc +15 -1
  3. data/Gemfile +7 -4
  4. data/MIT-LICENSE +1 -1
  5. data/README.md +5 -2
  6. data/lib/mail/attachments_list.rb +3 -1
  7. data/lib/mail/body.rb +1 -0
  8. data/lib/mail/check_delivery_params.rb +1 -0
  9. data/lib/mail/configuration.rb +1 -0
  10. data/lib/mail/constants.rb +1 -0
  11. data/lib/mail/core_extensions/smtp.rb +1 -0
  12. data/lib/mail/core_extensions/string/access.rb +1 -0
  13. data/lib/mail/core_extensions/string/multibyte.rb +1 -0
  14. data/lib/mail/core_extensions/string.rb +1 -0
  15. data/lib/mail/elements/address.rb +10 -5
  16. data/lib/mail/elements/address_list.rb +2 -1
  17. data/lib/mail/elements/content_disposition_element.rb +1 -0
  18. data/lib/mail/elements/content_location_element.rb +6 -5
  19. data/lib/mail/elements/content_transfer_encoding_element.rb +1 -0
  20. data/lib/mail/elements/content_type_element.rb +1 -0
  21. data/lib/mail/elements/date_time_element.rb +1 -0
  22. data/lib/mail/elements/envelope_from_element.rb +1 -0
  23. data/lib/mail/elements/message_ids_element.rb +7 -5
  24. data/lib/mail/elements/mime_version_element.rb +1 -0
  25. data/lib/mail/elements/phrase_list.rb +1 -0
  26. data/lib/mail/elements/received_element.rb +1 -0
  27. data/lib/mail/elements.rb +1 -0
  28. data/lib/mail/encodings/7bit.rb +1 -0
  29. data/lib/mail/encodings/8bit.rb +1 -0
  30. data/lib/mail/encodings/base64.rb +1 -0
  31. data/lib/mail/encodings/binary.rb +1 -0
  32. data/lib/mail/encodings/quoted_printable.rb +1 -0
  33. data/lib/mail/encodings/transfer_encoding.rb +1 -0
  34. data/lib/mail/encodings/unix_to_unix.rb +1 -0
  35. data/lib/mail/encodings.rb +1 -0
  36. data/lib/mail/envelope.rb +1 -0
  37. data/lib/mail/field.rb +1 -0
  38. data/lib/mail/field_list.rb +1 -0
  39. data/lib/mail/fields/bcc_field.rb +1 -0
  40. data/lib/mail/fields/cc_field.rb +1 -0
  41. data/lib/mail/fields/comments_field.rb +1 -0
  42. data/lib/mail/fields/common/address_container.rb +3 -2
  43. data/lib/mail/fields/common/common_address.rb +1 -0
  44. data/lib/mail/fields/common/common_date.rb +1 -0
  45. data/lib/mail/fields/common/common_field.rb +4 -1
  46. data/lib/mail/fields/common/common_message_id.rb +1 -0
  47. data/lib/mail/fields/common/parameter_hash.rb +1 -0
  48. data/lib/mail/fields/content_description_field.rb +1 -0
  49. data/lib/mail/fields/content_disposition_field.rb +2 -1
  50. data/lib/mail/fields/content_id_field.rb +1 -0
  51. data/lib/mail/fields/content_location_field.rb +1 -0
  52. data/lib/mail/fields/content_transfer_encoding_field.rb +1 -0
  53. data/lib/mail/fields/content_type_field.rb +2 -1
  54. data/lib/mail/fields/date_field.rb +1 -0
  55. data/lib/mail/fields/from_field.rb +1 -0
  56. data/lib/mail/fields/in_reply_to_field.rb +1 -0
  57. data/lib/mail/fields/keywords_field.rb +1 -0
  58. data/lib/mail/fields/message_id_field.rb +1 -0
  59. data/lib/mail/fields/mime_version_field.rb +1 -0
  60. data/lib/mail/fields/optional_field.rb +1 -0
  61. data/lib/mail/fields/received_field.rb +1 -0
  62. data/lib/mail/fields/references_field.rb +1 -0
  63. data/lib/mail/fields/reply_to_field.rb +1 -0
  64. data/lib/mail/fields/resent_bcc_field.rb +1 -0
  65. data/lib/mail/fields/resent_cc_field.rb +1 -0
  66. data/lib/mail/fields/resent_date_field.rb +1 -0
  67. data/lib/mail/fields/resent_from_field.rb +1 -0
  68. data/lib/mail/fields/resent_message_id_field.rb +1 -0
  69. data/lib/mail/fields/resent_sender_field.rb +1 -0
  70. data/lib/mail/fields/resent_to_field.rb +1 -0
  71. data/lib/mail/fields/return_path_field.rb +1 -0
  72. data/lib/mail/fields/sender_field.rb +1 -0
  73. data/lib/mail/fields/structured_field.rb +1 -0
  74. data/lib/mail/fields/subject_field.rb +1 -0
  75. data/lib/mail/fields/to_field.rb +1 -0
  76. data/lib/mail/fields/unstructured_field.rb +2 -1
  77. data/lib/mail/fields.rb +1 -0
  78. data/lib/mail/header.rb +1 -0
  79. data/lib/mail/indifferent_hash.rb +1 -0
  80. data/lib/mail/mail.rb +1 -0
  81. data/lib/mail/matchers/attachment_matchers.rb +1 -0
  82. data/lib/mail/matchers/has_sent_mail.rb +1 -0
  83. data/lib/mail/message.rb +1 -0
  84. data/lib/mail/multibyte/chars.rb +3 -2
  85. data/lib/mail/multibyte/exceptions.rb +1 -0
  86. data/lib/mail/multibyte/unicode.rb +1 -0
  87. data/lib/mail/multibyte/utils.rb +1 -0
  88. data/lib/mail/multibyte.rb +1 -0
  89. data/lib/mail/network/delivery_methods/exim.rb +1 -0
  90. data/lib/mail/network/delivery_methods/file_delivery.rb +1 -0
  91. data/lib/mail/network/delivery_methods/sendmail.rb +1 -0
  92. data/lib/mail/network/delivery_methods/smtp.rb +1 -0
  93. data/lib/mail/network/delivery_methods/smtp_connection.rb +1 -0
  94. data/lib/mail/network/delivery_methods/test_mailer.rb +1 -0
  95. data/lib/mail/network/retriever_methods/base.rb +1 -0
  96. data/lib/mail/network/retriever_methods/imap.rb +1 -0
  97. data/lib/mail/network/retriever_methods/pop3.rb +1 -0
  98. data/lib/mail/network/retriever_methods/test_retriever.rb +2 -1
  99. data/lib/mail/network.rb +1 -0
  100. data/lib/mail/parsers/address_lists_parser.rb +2 -1
  101. data/lib/mail/parsers/content_disposition_parser.rb +1 -0
  102. data/lib/mail/parsers/content_location_parser.rb +1 -0
  103. data/lib/mail/parsers/content_transfer_encoding_parser.rb +1 -0
  104. data/lib/mail/parsers/content_type_parser.rb +1 -0
  105. data/lib/mail/parsers/date_time_parser.rb +3 -0
  106. data/lib/mail/parsers/envelope_from_parser.rb +1 -0
  107. data/lib/mail/parsers/message_ids_parser.rb +1 -0
  108. data/lib/mail/parsers/mime_version_parser.rb +1 -0
  109. data/lib/mail/parsers/phrase_lists_parser.rb +3 -0
  110. data/lib/mail/parsers/ragel.rb +1 -0
  111. data/lib/mail/parsers/received_parser.rb +2 -0
  112. data/lib/mail/parsers.rb +1 -0
  113. data/lib/mail/part.rb +1 -0
  114. data/lib/mail/parts_list.rb +1 -0
  115. data/lib/mail/utilities.rb +42 -10
  116. data/lib/mail/version.rb +3 -2
  117. data/lib/mail/version_specific/ruby_1_8.rb +1 -0
  118. data/lib/mail/version_specific/ruby_1_9.rb +4 -0
  119. data/lib/mail.rb +1 -0
  120. metadata +5 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a4cd6578224b57f03109de0e15e54fc7d0e54079
4
- data.tar.gz: 7f7b2116022f18740b56ba559038332d40476dbf
3
+ metadata.gz: a4283c0737ab7bc528ff6a60317c46e1a2ff0f92
4
+ data.tar.gz: 8f98051e95f99f1622283e76919404d08027b7ff
5
5
  SHA512:
6
- metadata.gz: 5a93b7505e4b1dc57444a7779005de12c4cc4db846d9e0ec86981f26c13abdac2cffde6be282b03ef6cc7f24317822434cdb34be99dd213a585b4eb34589ece4
7
- data.tar.gz: c5abba187c988de228cd9d808b5e85d26a1d59a48ae8c702a1ebb25a96b98ad1c48e16364ff1970ba5302c08112f78c45e82b475c724574cd9664b7847423f42
6
+ metadata.gz: 63514c34ddad591e76cb6704122775906f4d603aad4e90024ec88f17d7f19a78129dfe15d561b2f9e3807bdb074e6269dbdcb09d95656da2399b143e58681cd2
7
+ data.tar.gz: a05cbc7af1c553e062d405b024390c17b03649f280c1c171b278b373401c1843657dc25e316f5041a44fdd3aba19f2a7a44b9d33d0ca9074bab06ed6c86b068d
data/CHANGELOG.rdoc CHANGED
@@ -1,4 +1,14 @@
1
- == HEAD
1
+ == Version 2.6.5 - 2017-04-26 Jeremy Daer <jeremydaer@gmail.com>
2
+
3
+ Features:
4
+ * #1053 - Ruby 2.4.0 compatibility. Fixnum+Bignum unified as Integer. (peterkovacs)
5
+
6
+ Bugs:
7
+ * #605 - Fix Mail::Address#name for nil addresses (peterkovacs)
8
+ * #1003 - Fix decoding some b encoded headers on specific rubies that don't account for lack of base64 padding (kjg)
9
+ * #1023 - Fix double-quoting in display names. (garethrees)
10
+
11
+ == Version 2.6.4 - Wed Mar 23 08:16 -0700 2016 Jeremy Daer <jeremydaer@gmail.com>
2
12
 
3
13
  Features:
4
14
  * #772 - Normalize encoding matchers (grosser)
@@ -11,6 +21,10 @@ Features:
11
21
  * #901 - Allow mail.text_part = '…' and mail.html_part = '<p>…</p>' (taavo)
12
22
  * #924 - Matcher for having attachments (schepedw)
13
23
 
24
+ Performance:
25
+ * #956 - Use native String#encode for CR/LF conversion (carsonreinke)
26
+ * #970 - Support Ruby 2.3+ frozen string literals (twalpole)
27
+
14
28
  Bugs:
15
29
  * #719 - Fix to not extract header content that looks like its field name (kjg)
16
30
  * #789 - Fix encoding collapsing not dealing with multiple encodings in 1 line (grosser)
data/Gemfile CHANGED
@@ -1,11 +1,14 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- gem "tlsmail", "~> 0.0.1" if RUBY_VERSION <= "1.8.6"
6
- gem "jruby-openssl", :platforms => :jruby
5
+ gem 'tlsmail', '~> 0.0.1' if RUBY_VERSION <= '1.8.6'
6
+ gem 'jruby-openssl', :platforms => :jruby
7
+ gem 'rake', '< 11.0', :platforms => :ruby_18
8
+ gem 'rdoc', '< 4.3', :platforms => [ :ruby_18, :ruby_19 ]
9
+ gem 'mime-types', '< 2.0', :platforms => [ :ruby_18, :ruby_19 ]
7
10
 
8
11
  # For gems not required to run tests
9
12
  group :local_development, :test do
10
- gem "appraisal", "~> 1.0" unless RUBY_VERSION <= "1.8.7"
13
+ gem 'appraisal', '~> 1.0' unless RUBY_VERSION < '1.9'
11
14
  end
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009-2015 Mikel Lindsaar
1
+ Copyright (c) 2009-2017 Mikel Lindsaar
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -48,9 +48,12 @@ Every Mail commit is tested by Travis on the [following platforms](https://githu
48
48
  * ruby-1.9.2 [ x86_64 ]
49
49
  * ruby-1.9.3 [ x86_64 ]
50
50
  * ruby-2.0.0 [ x86_64 ]
51
- * ruby-2.1.2 [ x86_64 ]
51
+ * ruby-2.1.10 [ x86_64 ]
52
+ * ruby-2.2.6 [ x86_64 ]
53
+ * ruby-2.3.3 [ x86_64 ]
52
54
  * ruby-head [ x86_64 ]
53
55
  * jruby [ x86_64 ]
56
+ * jruby-9.1.6.0 [ x86_64 ]
54
57
  * jruby-head [ x86_64 ]
55
58
  * rbx-2 [ x86_64 ]
56
59
 
@@ -697,7 +700,7 @@ License
697
700
 
698
701
  (The MIT License)
699
702
 
700
- Copyright (c) 2009-2015 Mikel Lindsaar
703
+ Copyright (c) 2009-2017 Mikel Lindsaar
701
704
 
702
705
  Permission is hereby granted, free of charge, to any person obtaining
703
706
  a copy of this software and associated documentation files (the
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Mail
2
3
  class AttachmentsList < Array
3
4
 
@@ -29,7 +30,7 @@ module Mail
29
30
  # mail.attachments['test.png'].filename #=> 'test.png'
30
31
  # mail.attachments[1].filename #=> 'test.jpg'
31
32
  def [](index_value)
32
- if index_value.is_a?(Fixnum)
33
+ if index_value.is_a?(Integer)
33
34
  self.fetch(index_value)
34
35
  else
35
36
  self.select { |a| a.filename == index_value }.first
@@ -71,6 +72,7 @@ module Mail
71
72
 
72
73
  if hash[:body].respond_to? :force_encoding and hash[:body].respond_to? :valid_encoding?
73
74
  if not hash[:body].valid_encoding? and default_values[:content_transfer_encoding].downcase == "binary"
75
+ hash[:body] = hash[:body].dup if hash[:body].frozen?
74
76
  hash[:body].force_encoding("BINARY")
75
77
  end
76
78
  end
data/lib/mail/body.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
 
4
5
  # = Body
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Mail
2
3
  module CheckDeliveryParams
3
4
  def check_delivery_params(mail)
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # Thanks to Nicolas Fouché for this wrapper
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: us-ascii
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  module Constants
4
5
  white_space = %Q|\x9\x20|
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Net
3
4
  class SMTP
4
5
  # This is a backport of r30294 from ruby trunk because of a bug in net/smtp.
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  # This is not loaded if ActiveSupport is already loaded
4
5
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  # This is not loaded if ActiveSupport is already loaded
4
5
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  class String #:nodoc:
3
4
 
4
5
  unless method_defined?(:ascii_only?)
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class Address
4
5
 
@@ -92,7 +93,7 @@ module Mail
92
93
  # a.display_name = 'Mikel Lindsaar'
93
94
  # a.format #=> 'Mikel Lindsaar <mikel@test.lindsaar.net>'
94
95
  def display_name=( str )
95
- @display_name = str
96
+ @display_name = str.nil? ? nil : str.dup # in case frozen
96
97
  end
97
98
 
98
99
  # Returns the local part (the left hand side of the @ sign in the email address) of
@@ -122,7 +123,12 @@ module Mail
122
123
  # a.comments #=> ['My email address']
123
124
  def comments
124
125
  parse unless @parsed
125
- get_comments.map { |c| c.squeeze(SPACE) } unless get_comments.empty?
126
+ comments = get_comments
127
+ if comments.nil? || comments.none?
128
+ nil
129
+ else
130
+ comments.map { |c| c.squeeze(SPACE) }
131
+ end
126
132
  end
127
133
 
128
134
  # Sometimes an address will not have a display name, but might have the name
@@ -204,12 +210,11 @@ module Mail
204
210
  end
205
211
 
206
212
  def get_display_name
207
- if @data.display_name
213
+ if @data && @data.display_name
208
214
  str = strip_all_comments(@data.display_name.to_s)
209
- elsif @data.comments && @data.domain
215
+ elsif @data && @data.comments && @data.domain
210
216
  str = strip_domain_comments(format_comments)
211
217
  end
212
-
213
218
  str unless Utilities.blank?(str)
214
219
  end
215
220
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class AddressList # :nodoc:
4
5
 
@@ -19,7 +20,7 @@ module Mail
19
20
  # a.group_names #=> ["My Group"]
20
21
  def initialize(string)
21
22
  @addresses_grouped_by_group = nil
22
- @address_list = Parsers::AddressListsParser.new.parse(string)
23
+ @address_list = Mail::Parsers::AddressListsParser.new.parse(string)
23
24
  end
24
25
 
25
26
  # Returns a list of address objects from the parsed line
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class ContentDispositionElement # :nodoc:
4
5
 
@@ -1,21 +1,22 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class ContentLocationElement # :nodoc:
4
-
5
+
5
6
  include Mail::Utilities
6
-
7
+
7
8
  def initialize( string )
8
9
  content_location = Mail::Parsers::ContentLocationParser.new.parse(string)
9
10
  @location = content_location.location
10
11
  end
11
-
12
+
12
13
  def location
13
14
  @location
14
15
  end
15
-
16
+
16
17
  def to_s(*args)
17
18
  location.to_s
18
19
  end
19
-
20
+
20
21
  end
21
22
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class ContentTransferEncodingElement
4
5
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class ContentTypeElement # :nodoc:
4
5
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class DateTimeElement # :nodoc:
4
5
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class EnvelopeFromElement
4
5
 
@@ -1,21 +1,23 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class MessageIdsElement
4
-
5
+
5
6
  include Mail::Utilities
6
-
7
+
7
8
  def initialize(string)
9
+ raise Mail::Field::ParseError.new(Mail::MessageIdsElement, string, 'nil is invalid') if string.nil?
8
10
  @message_ids = Mail::Parsers::MessageIdsParser.new.parse(string).message_ids.map { |msg_id| clean_msg_id(msg_id) }
9
11
  end
10
-
12
+
11
13
  def message_ids
12
14
  @message_ids
13
15
  end
14
-
16
+
15
17
  def message_id
16
18
  @message_ids.first
17
19
  end
18
-
20
+
19
21
  def clean_msg_id( val )
20
22
  val =~ /.*<(.*)>.*/ ; $1
21
23
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class MimeVersionElement
4
5
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class PhraseList
4
5
 
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  class ReceivedElement
4
5
 
data/lib/mail/elements.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Mail
2
3
  register_autoload :Address, 'mail/elements/address'
3
4
  register_autoload :AddressList, 'mail/elements/address_list'
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/encodings/8bit'
3
4
 
4
5
  module Mail
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/encodings/binary'
3
4
 
4
5
  module Mail
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/encodings/7bit'
3
4
 
4
5
  module Mail
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/encodings/transfer_encoding'
3
4
 
4
5
  module Mail
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/encodings/7bit'
3
4
 
4
5
  module Mail
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  module Encodings
4
5
  class TransferEncoding
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Mail
2
3
  module Encodings
3
4
  module UnixToUnix
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Mail
4
5
  # Raised when attempting to decode an unknown encoding type
data/lib/mail/envelope.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Mail Envelope
4
5
  #
data/lib/mail/field.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'mail/fields'
2
3
 
3
4
  # encoding: utf-8
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
 
4
5
  # Field List class provides an enhanced array that keeps a list of
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Blind Carbon Copy Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Carbon Copy Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Comments Field
4
5
  #
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Mail
2
3
 
3
4
  class AddressContainer < Array
@@ -7,10 +8,10 @@ module Mail
7
8
  super(list)
8
9
  end
9
10
 
10
- def << (address)
11
+ def <<(address)
11
12
  @field << address
12
13
  end
13
14
 
14
15
  end
15
16
 
16
- end
17
+ end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/fields/common/address_container'
3
4
 
4
5
  module Mail
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  module CommonDate # :nodoc:
4
5
  # Returns a date time object of the parsed date
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  module CommonField # :nodoc:
4
5
  include Mail::Constants
@@ -51,7 +52,9 @@ module Mail
51
52
  FILENAME_RE = /\b(filename|name)=([^;"\r\n]+\s[^;"\r\n]+)/
52
53
  def ensure_filename_quoted(value)
53
54
  if value.is_a?(String)
54
- value.sub! FILENAME_RE, '\1="\2"'
55
+ value.sub FILENAME_RE, '\1="\2"'
56
+ else
57
+ value
55
58
  end
56
59
  end
57
60
  end
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
  module CommonMessageId # :nodoc:
4
5
  def element
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  module Mail
3
4
 
4
5
  # ParameterHash is an intelligent Hash that allows you to add
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  #
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/fields/common/parameter_hash'
3
4
 
4
5
  module Mail
@@ -9,7 +10,7 @@ module Mail
9
10
 
10
11
  def initialize(value = nil, charset = 'utf-8')
11
12
  self.charset = charset
12
- ensure_filename_quoted(value)
13
+ value = ensure_filename_quoted(value)
13
14
  super(CAPITALIZED_FIELD, strip_field(FIELD_NAME, value), charset)
14
15
  self.parse
15
16
  self
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  #
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  #
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  #
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'mail/fields/common/parameter_hash'
3
4
 
4
5
  module Mail
@@ -19,7 +20,7 @@ module Mail
19
20
  @parameters = nil
20
21
  value = strip_field(FIELD_NAME, value)
21
22
  end
22
- ensure_filename_quoted(value)
23
+ value = ensure_filename_quoted(value)
23
24
  super(CAPITALIZED_FIELD, value, charset)
24
25
  self.parse
25
26
  self
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Date Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = From Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = In-Reply-To Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # keywords = "Keywords:" phrase *("," phrase) CRLF
4
5
  module Mail
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Message-ID Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  #
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # The field names of any optional-field MUST NOT be identical to any
4
5
  # field name specified elsewhere in this standard.
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # trace = [return]
4
5
  # 1*received
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = References Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Reply-To Field
4
5
  #
@@ -1,4 +1,5 @@
1
1
  # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  #
3
4
  # = Resent-Bcc Field
4
5
  #