mail-iso-2022-jp 2.0.0.pre → 2.0.0.pre2
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/README.md +17 -13
- data/lib/mail-iso-2022-jp.rb +2 -1
- data/lib/mail-iso-2022-jp/field_with_iso_2022_jp_encoding.rb +1 -0
- data/lib/mail-iso-2022-jp/mail.rb +3 -1
- data/lib/mail-iso-2022-jp/message.rb +1 -0
- data/lib/mail-iso-2022-jp/ruby18/field_with_iso_2022_jp_encoding.rb +1 -0
- data/lib/mail-iso-2022-jp/ruby18/mail.rb +3 -1
- data/lib/mail-iso-2022-jp/ruby18/message.rb +1 -0
- data/lib/mail-iso-2022-jp/{fields.rb → structured_fields.rb} +0 -7
- data/lib/mail-iso-2022-jp/subject_field.rb +12 -0
- metadata +5 -4
data/README.md
CHANGED
@@ -22,20 +22,23 @@ Feature
|
|
22
22
|
|
23
23
|
* (en)
|
24
24
|
|
25
|
-
If you set the `charset` header to `ISO-2022-JP`, the values of `From`, `Sender`, `To`, `Cc`,
|
25
|
+
* If you set the `charset` header to `ISO-2022-JP`, the values of `From`, `Sender`, `To`, `Cc`,
|
26
26
|
`Reply-To`, `Subject`, `Resent-From`, `Resent-Sender`, `Resent-To` and `Resent-Cc` headers
|
27
27
|
and the text of body will be automatically converted to `ISO-2022-JP`.
|
28
|
-
|
29
|
-
|
28
|
+
|
29
|
+
* The text part of multipart mail is also encoded with iso-2022-jp.
|
30
|
+
|
31
|
+
* When the `charset` header has other values, this patch has no effect.
|
30
32
|
|
31
33
|
* (ja)
|
32
34
|
|
33
|
-
chasetヘッダの値が `ISO-2022-JP` である場合、差出人(From)、Sender、宛先(To)、Cc、Reply-To、件名(Subject)、
|
35
|
+
* chasetヘッダの値が `ISO-2022-JP` である場合、差出人(From)、Sender、宛先(To)、Cc、Reply-To、件名(Subject)、
|
34
36
|
Resent-From、Resent-Sender、Resent-To、Resent-Cc の各ヘッダの値および本文(Body)が
|
35
37
|
自動的に `ISO-2022-JP` に変換されます。
|
36
|
-
|
37
|
-
charsetヘッダの値が `ISO-2022-JP` でない場合、このパッチには何の効果もありません。
|
38
38
|
|
39
|
+
* マルチパートメールのテキストパートもiso-2022-jpでエンコードされます。
|
40
|
+
|
41
|
+
* charsetヘッダの値が `ISO-2022-JP` でない場合、このパッチには何の効果もありません。
|
39
42
|
|
40
43
|
Requirements
|
41
44
|
------------
|
@@ -48,7 +51,7 @@ Requirements
|
|
48
51
|
|
49
52
|
* `mail` 2.2.6 or higher, but lower than or equal to 2.5.3
|
50
53
|
|
51
|
-
###
|
54
|
+
### ActionMailer (Optional) ###
|
52
55
|
|
53
56
|
* 3.0 or higher
|
54
57
|
|
@@ -113,18 +116,19 @@ Remarks
|
|
113
116
|
-------
|
114
117
|
|
115
118
|
* (en)
|
116
|
-
* NEC special characters like `①` and IBM extended characters like `髙`, `﨑`
|
117
|
-
|
118
|
-
*
|
119
|
+
* NEC special characters like `①` and IBM extended characters like `髙`, `﨑`
|
120
|
+
are allowed in the subject, recipient names and mail body.
|
121
|
+
* Fullwidth tilde (U+FF5E) and wave dashe (U+301C) are converted to the fullwidth tilde (2141).
|
122
|
+
* Fullwidth hyphen minus (U+FF0D) and minus sign (U+2212) are converted to the fullwidth minus (215D).
|
123
|
+
* Halfwidth (Hankaku) katakanas are maintained intact.
|
119
124
|
* Characters that cannot be translated into iso-2022-jp encoding are substituted with question marks (`?`).
|
120
|
-
* The text part of multipart mail is also encoded with iso-2022-jp.
|
121
125
|
|
122
126
|
* (ja)
|
123
127
|
* `①` などのNEC特殊文字や `髙` や `﨑` といったIBM拡張文字を件名、宛先、本文などに含めることができます。
|
124
|
-
* 全角チルダ(U+FF5E)
|
128
|
+
* 全角チルダ(U+FF5E)と波ダッシュ(U+301C)は、全角チルダ(2141)に変換されます。
|
129
|
+
* 全角ハイフンマイナス(U+ff0D)とマイナス記号(U+2212)は、全角マイナス(215D)に変換されます。
|
125
130
|
* 半角カタカナはそのまま維持されます。
|
126
131
|
* 変換できない文字は疑問符(`?`)で置換されます。
|
127
|
-
* マルチパートメールのテキストパートもiso-2022-jpでエンコードされます。
|
128
132
|
|
129
133
|
References
|
130
134
|
----------
|
data/lib/mail-iso-2022-jp.rb
CHANGED
@@ -34,6 +34,7 @@ module Mail
|
|
34
34
|
|
35
35
|
def encode_with_iso_2022_jp(value, charset)
|
36
36
|
value = value.to_s.gsub(/#{WAVE_DASH}/, FULLWIDTH_TILDE)
|
37
|
+
value = value.to_s.gsub(/#{MINUS_SIGN}/, FULLWIDTH_HYPHEN_MINUS)
|
37
38
|
value = Mail.encoding_to_charset(value, charset)
|
38
39
|
value.force_encoding('ascii-8bit')
|
39
40
|
value = b_value_encode(value)
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
# Patches for Mail on Ruby 1.
|
3
|
+
# Patches for Mail on Ruby 1.9.3 or above
|
4
4
|
module Mail
|
5
5
|
WAVE_DASH = "〜" # U+301C
|
6
6
|
FULLWIDTH_TILDE = "~" # U+FF5E
|
7
|
+
MINUS_SIGN = [0x2212].pack("U")
|
8
|
+
FULLWIDTH_HYPHEN_MINUS = [0xff0d].pack("U")
|
7
9
|
ENCODE = { 'iso-2022-jp' => Encoding::CP50221 }
|
8
10
|
|
9
11
|
def self.encoding_to_charset(str, charset)
|
@@ -1,9 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
# Patches for Mail on Ruby 1.
|
3
|
+
# Patches for Mail on Ruby 1.8.7
|
4
4
|
module Mail
|
5
5
|
WAVE_DASH = "〜" # U+301C
|
6
6
|
FULLWIDTH_TILDE = "~" # U+FF5E
|
7
|
+
MINUS_SIGN = [0x2212].pack("U")
|
8
|
+
FULLWIDTH_HYPHEN_MINUS = [0xff0d].pack("U")
|
7
9
|
NKF_OPTIONS = "--oc=CP50220 -xjW --fb-subchar"
|
8
10
|
|
9
11
|
class InvalidEncodingError < StandardError; end
|
@@ -15,6 +15,7 @@ module Mail
|
|
15
15
|
def process_body_raw_with_iso_2022_jp_encoding
|
16
16
|
if @charset.to_s.downcase == 'iso-2022-jp'
|
17
17
|
@body_raw = @body_raw.to_s.gsub(/#{WAVE_DASH}/, FULLWIDTH_TILDE)
|
18
|
+
@body_raw = @body_raw.to_s.gsub(/#{MINUS_SIGN}/, FULLWIDTH_HYPHEN_MINUS)
|
18
19
|
@body_raw = NKF.nkf(NKF_OPTIONS, @body_raw)
|
19
20
|
end
|
20
21
|
process_body_raw_without_iso_2022_jp_encoding
|
@@ -3,13 +3,6 @@
|
|
3
3
|
require 'mail'
|
4
4
|
|
5
5
|
module Mail
|
6
|
-
class SubjectField < UnstructuredField
|
7
|
-
include FieldWithIso2022JpEncoding
|
8
|
-
def b_value_encode(string)
|
9
|
-
encode64(string)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
6
|
class FromField < StructuredField
|
14
7
|
include FieldWithIso2022JpEncoding
|
15
8
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mail-iso-2022-jp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.pre2
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2013-01-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: mail
|
@@ -83,7 +83,8 @@ files:
|
|
83
83
|
- lib/mail-iso-2022-jp/ruby18/field_with_iso_2022_jp_encoding.rb
|
84
84
|
- lib/mail-iso-2022-jp/ruby18/mail.rb
|
85
85
|
- lib/mail-iso-2022-jp/field_with_iso_2022_jp_encoding.rb
|
86
|
-
- lib/mail-iso-2022-jp/
|
86
|
+
- lib/mail-iso-2022-jp/subject_field.rb
|
87
|
+
- lib/mail-iso-2022-jp/structured_fields.rb
|
87
88
|
- lib/mail-iso-2022-jp/header.rb
|
88
89
|
- lib/mail-iso-2022-jp/mail.rb
|
89
90
|
- lib/mail-iso-2022-jp.rb
|
@@ -107,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
107
108
|
version: 1.3.1
|
108
109
|
requirements: []
|
109
110
|
rubyforge_project:
|
110
|
-
rubygems_version: 1.8.
|
111
|
+
rubygems_version: 1.8.23
|
111
112
|
signing_key:
|
112
113
|
specification_version: 3
|
113
114
|
summary: A set of patches that provides 'mail' gem with iso-2022-jp conversion capability.
|