mail-jenc 1.1.0 → 1.2.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/utilities_patch.rb +2 -4
- data/lib/mail/jenc/version.rb +1 -1
- data/lib/mail/jenc.rb +32 -17
- metadata +7 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3f4d09dee3b6fcb41a2c89d36fa5d03612996fe805e2c641c2aef579056a37e6
|
|
4
|
+
data.tar.gz: c6ccc4f85aa7c1ac09cbaee529e1da56fd7404eca00a03a3191e66b53b93a591
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7ab7f00be8087ab1300bb239112885cdb5b3135fe18fdeab33bf2c86e82baa3130e2756268c0296feb9fff609f64d7c3a721ce96259dbb9fd42dae57f5882cc7
|
|
7
|
+
data.tar.gz: e3cf8443136b5fe92bfdfaf5ffd5891c03151b65d96edc1a641414609d5e5edfb7b12008e93902e1b87e4830d432df0e372ae5ca54bc9de0233891f87c6f9b15
|
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
|
|
@@ -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.2.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: 2023-
|
|
11
|
+
date: 2023-10-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: mail
|
|
@@ -78,6 +78,7 @@ 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
|
|
@@ -89,7 +90,7 @@ homepage: https://github.com/kanety/mail-jenc
|
|
|
89
90
|
licenses:
|
|
90
91
|
- MIT
|
|
91
92
|
metadata: {}
|
|
92
|
-
post_install_message:
|
|
93
|
+
post_install_message:
|
|
93
94
|
rdoc_options: []
|
|
94
95
|
require_paths:
|
|
95
96
|
- lib
|
|
@@ -104,8 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
104
105
|
- !ruby/object:Gem::Version
|
|
105
106
|
version: '0'
|
|
106
107
|
requirements: []
|
|
107
|
-
rubygems_version: 3.
|
|
108
|
-
signing_key:
|
|
108
|
+
rubygems_version: 3.3.3
|
|
109
|
+
signing_key:
|
|
109
110
|
specification_version: 4
|
|
110
111
|
summary: A mail patch for encoding conventional mail
|
|
111
112
|
test_files: []
|