mail-jenc 1.1.0 → 1.3.0
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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/mail/jenc/attachments_list_patch.rb +2 -4
- data/lib/mail/jenc/b_encoder.rb +1 -1
- data/lib/mail/jenc/config.rb +24 -0
- data/lib/mail/jenc/fields/address_field_patch.rb +1 -3
- data/lib/mail/jenc/fields/unstructured_field_patch.rb +1 -3
- data/lib/mail/jenc/message_patch.rb +1 -3
- data/lib/mail/jenc/smtp_envelope_patch.rb +20 -0
- data/lib/mail/jenc/utilities_patch.rb +2 -4
- data/lib/mail/jenc/version.rb +1 -1
- data/lib/mail/jenc.rb +32 -17
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6be26126a52c7fa6f1b764db469345786c068acd66b5ab06220164446d66e06e
|
4
|
+
data.tar.gz: 00e48f04acba4a936c0304c5b83b44680a1ae858433592b2182693dab4b7a904
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64eb29b35a617a0ce374c8e845bc96e0df1e6031dba548d767f10f522e2c4fa85e46ca08d19dbd8339333c365fc3396e92c7155c424ef419b99e712d89da489f
|
7
|
+
data.tar.gz: 5524579d13014fb391b9d96fa494b1383946778b907c3e31aef100c2410a1e5e01edad7b6507748a34957bd21f5ce90060c6a9244614a1ecd8689e520f3dc9ba
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@ module Mail
|
|
6
6
|
def []=(name, value)
|
7
7
|
if Jenc.enabled? && value.is_a?(Hash)
|
8
8
|
charset = value.delete(:header_charset)
|
9
|
-
rfc2231 = value.key?(:rfc2231) ? value.delete(:rfc2231) : Jenc.rfc2231
|
9
|
+
rfc2231 = value.key?(:rfc2231) ? value.delete(:rfc2231) : Jenc.config.rfc2231
|
10
10
|
|
11
11
|
if name && name.encoding == Encoding::UTF_8 && charset
|
12
12
|
mime_type = set_mime_type(name)
|
@@ -29,6 +29,4 @@ module Mail
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
|
33
|
-
Mail::AttachmentsList.prepend Mail::Jenc::AttachmentsListPatch
|
34
|
-
end
|
32
|
+
Mail::AttachmentsList.prepend Mail::Jenc::AttachmentsListPatch
|
data/lib/mail/jenc/b_encoder.rb
CHANGED
@@ -5,7 +5,7 @@ module Mail
|
|
5
5
|
class BEncoder
|
6
6
|
class << self
|
7
7
|
def encode(str, charset)
|
8
|
-
if Jenc.escape_sequence_charsets.include?(charset.to_s.downcase)
|
8
|
+
if Jenc.config.escape_sequence_charsets.include?(charset.to_s.downcase)
|
9
9
|
split(str).map { |s| transcode_and_encode(s, charset) }.join(' ')
|
10
10
|
else
|
11
11
|
transcode_and_encode(str, charset)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Mail
|
4
|
+
module Jenc
|
5
|
+
class Config
|
6
|
+
NAMES = [:enabled, :rfc2231, :escape_sequence_charsets, :preferred_charsets]
|
7
|
+
NAMES.each do |name|
|
8
|
+
attr_accessor name
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize(attrs = {})
|
12
|
+
attrs.each do |key, val|
|
13
|
+
send("#{key}=", val)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def attributes
|
18
|
+
NAMES.each_with_object({}) do |name, hash|
|
19
|
+
hash[name] = send(name)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -23,7 +23,5 @@ end
|
|
23
23
|
|
24
24
|
klasses = ObjectSpace.each_object(Class).select { |klass| klass < Mail::CommonAddressField }
|
25
25
|
klasses.each do |klass|
|
26
|
-
|
27
|
-
klass.prepend Mail::Jenc::CommonAddressFieldPatch
|
28
|
-
end
|
26
|
+
klass.prepend Mail::Jenc::CommonAddressFieldPatch
|
29
27
|
end
|
@@ -19,6 +19,4 @@ module Mail
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
Mail::UnstructuredField.prepend Mail::Jenc::UnstructuredFieldPatch
|
24
|
-
end
|
22
|
+
Mail::UnstructuredField.prepend Mail::Jenc::UnstructuredFieldPatch
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'mail/smtp_envelope'
|
4
|
+
|
5
|
+
module Mail
|
6
|
+
module Jenc
|
7
|
+
module SmtpEnvelopePatch
|
8
|
+
def validate_addr(addr_name, addr)
|
9
|
+
if Jenc.enabled?
|
10
|
+
super(addr_name, addr.to_s)
|
11
|
+
addr
|
12
|
+
else
|
13
|
+
super
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Mail::SmtpEnvelope.prepend Mail::Jenc::SmtpEnvelopePatch
|
@@ -14,13 +14,11 @@ module Mail
|
|
14
14
|
|
15
15
|
class << self
|
16
16
|
def preferred_charset(charset)
|
17
|
-
Jenc.preferred_charsets[charset.to_s.downcase] || charset
|
17
|
+
Jenc.config.preferred_charsets[charset.to_s.downcase] || charset
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
Mail::Utilities.singleton_class.prepend Mail::Jenc::UtilitiesPatch
|
26
|
-
end
|
24
|
+
Mail::Utilities.singleton_class.prepend Mail::Jenc::UtilitiesPatch
|
data/lib/mail/jenc/version.rb
CHANGED
data/lib/mail/jenc.rb
CHANGED
@@ -9,30 +9,45 @@ end
|
|
9
9
|
module Mail
|
10
10
|
module Jenc
|
11
11
|
class << self
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
@@config = Config.new(
|
13
|
+
enabled: true,
|
14
|
+
rfc2231: false,
|
15
|
+
escape_sequence_charsets: ['iso-2022-jp'],
|
16
|
+
preferred_charsets: {
|
17
|
+
'iso-2022-jp' => 'cp50221',
|
18
|
+
'shift_jis' => 'cp932'
|
19
|
+
}
|
20
|
+
)
|
21
|
+
|
22
|
+
def configure
|
23
|
+
yield @@config
|
24
|
+
end
|
25
|
+
|
26
|
+
THREAD_KEY = :_mail_jenc
|
27
|
+
|
28
|
+
def config
|
29
|
+
Thread.current[THREAD_KEY] || @@config
|
30
|
+
end
|
31
|
+
|
32
|
+
def with_config(hash = {})
|
33
|
+
old = Thread.current[THREAD_KEY]
|
34
|
+
Thread.current[THREAD_KEY] = Config.new(config.attributes.merge(hash))
|
35
|
+
yield
|
36
|
+
ensure
|
37
|
+
Thread.current[THREAD_KEY] = old
|
38
|
+
end
|
16
39
|
|
17
40
|
def enabled?
|
18
|
-
|
41
|
+
config.enabled
|
19
42
|
end
|
20
43
|
|
21
|
-
def enable
|
22
|
-
|
44
|
+
def enable!
|
45
|
+
config.enabled = true
|
23
46
|
end
|
24
47
|
|
25
|
-
def disable
|
26
|
-
|
48
|
+
def disable!
|
49
|
+
config.enabled = false
|
27
50
|
end
|
28
51
|
end
|
29
|
-
|
30
|
-
self.enable
|
31
|
-
self.rfc2231 = false
|
32
|
-
self.escape_sequence_charsets = ['iso-2022-jp']
|
33
|
-
self.preferred_charsets = {
|
34
|
-
'iso-2022-jp' => 'cp50221',
|
35
|
-
'shift_jis' => 'cp932'
|
36
|
-
}
|
37
52
|
end
|
38
53
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mail-jenc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yoshikazu Kaneta
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-06-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mail
|
@@ -78,18 +78,20 @@ files:
|
|
78
78
|
- lib/mail/jenc.rb
|
79
79
|
- lib/mail/jenc/attachments_list_patch.rb
|
80
80
|
- lib/mail/jenc/b_encoder.rb
|
81
|
+
- lib/mail/jenc/config.rb
|
81
82
|
- lib/mail/jenc/fields/address_field_patch.rb
|
82
83
|
- lib/mail/jenc/fields/unstructured_field_patch.rb
|
83
84
|
- lib/mail/jenc/message_patch.rb
|
84
85
|
- lib/mail/jenc/percent_encoder.rb
|
85
86
|
- lib/mail/jenc/rfc2231_encoder.rb
|
87
|
+
- lib/mail/jenc/smtp_envelope_patch.rb
|
86
88
|
- lib/mail/jenc/utilities_patch.rb
|
87
89
|
- lib/mail/jenc/version.rb
|
88
90
|
homepage: https://github.com/kanety/mail-jenc
|
89
91
|
licenses:
|
90
92
|
- MIT
|
91
93
|
metadata: {}
|
92
|
-
post_install_message:
|
94
|
+
post_install_message:
|
93
95
|
rdoc_options: []
|
94
96
|
require_paths:
|
95
97
|
- lib
|
@@ -104,8 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
106
|
- !ruby/object:Gem::Version
|
105
107
|
version: '0'
|
106
108
|
requirements: []
|
107
|
-
rubygems_version: 3.
|
108
|
-
signing_key:
|
109
|
+
rubygems_version: 3.3.3
|
110
|
+
signing_key:
|
109
111
|
specification_version: 4
|
110
112
|
summary: A mail patch for encoding conventional mail
|
111
113
|
test_files: []
|