mail_address 1.2.9 → 1.2.10
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/lib/mail_address/address.rb +16 -4
- data/lib/mail_address/version.rb +1 -1
- data/spec/mail_address_spec.rb +25 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c59f3af0de6a57910e691f12c2f5023077081f04
|
|
4
|
+
data.tar.gz: 109a3c2434e09e90485263c03b30ffbc60a1a3b4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90c04d523dad4c2a132c7f287c2fb26ee5d795241ca713a74e470b4dccc8eb7a65855f2d34c9ded4667c91e5fee340cd9d2175f6cf7575f0d6371330c71a3f5f
|
|
7
|
+
data.tar.gz: 8ea6e8a1b9f06e818af3c613566df0e3ff8014384078a3871c46f8379900801cfbee9e28cb252de2ac56f53eba79538f3519b8a71fc6ba7f08055754a7dd704b
|
data/lib/mail_address/address.rb
CHANGED
|
@@ -21,13 +21,15 @@ module MailAddress
|
|
|
21
21
|
|
|
22
22
|
ATEXT = '[\-\w !#$%&\'*+/=?^`{|}~]'
|
|
23
23
|
|
|
24
|
-
def format
|
|
24
|
+
def format(enquote = false)
|
|
25
25
|
addr = []
|
|
26
26
|
return @original if @address.nil?
|
|
27
27
|
|
|
28
|
+
email_address = enquote ? quoted_address : @address
|
|
29
|
+
|
|
28
30
|
if !@phrase.nil? && @phrase.length > 0 then
|
|
29
31
|
if @phrase.match(/\A\(/) && @phrase.match(/\)\z/)
|
|
30
|
-
addr.push(
|
|
32
|
+
addr.push(email_address) if !@address.nil? && @address.length > 0
|
|
31
33
|
addr.push(@phrase)
|
|
32
34
|
else
|
|
33
35
|
addr.push(
|
|
@@ -35,10 +37,10 @@ module MailAddress
|
|
|
35
37
|
: @phrase.match(/(?<!\\)"/) ? @phrase
|
|
36
38
|
: %Q("#{@phrase}")
|
|
37
39
|
)
|
|
38
|
-
addr.push "<#{
|
|
40
|
+
addr.push "<#{email_address}>" if !@address.nil? && @address.length > 0
|
|
39
41
|
end
|
|
40
42
|
elsif !@address.nil? && @address.length > 0 then
|
|
41
|
-
addr.push(
|
|
43
|
+
addr.push(email_address)
|
|
42
44
|
end
|
|
43
45
|
addr.join(' ')
|
|
44
46
|
end
|
|
@@ -61,6 +63,16 @@ module MailAddress
|
|
|
61
63
|
i.nil? ? addr : addr[0 ... i]
|
|
62
64
|
end
|
|
63
65
|
|
|
66
|
+
def quoted_address
|
|
67
|
+
if @address
|
|
68
|
+
if self.user.include?('..') || self.user.end_with?('.')
|
|
69
|
+
local_part = self.user.gsub(/(\A"|"\z)/, '')
|
|
70
|
+
return "\"#{local_part}\"@#{self.host}"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
@address
|
|
74
|
+
end
|
|
75
|
+
|
|
64
76
|
private
|
|
65
77
|
|
|
66
78
|
# given a comment, attempt to extract a person's name
|
data/lib/mail_address/version.rb
CHANGED
data/spec/mail_address_spec.rb
CHANGED
|
@@ -9,6 +9,7 @@ describe MailAddress do
|
|
|
9
9
|
line = 'johndoe@example.com'
|
|
10
10
|
results = MailAddress.parse(line)
|
|
11
11
|
expect(results[0].format).to eq('johndoe@example.com')
|
|
12
|
+
expect(results[0].format(true)).to eq('johndoe@example.com')
|
|
12
13
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
13
14
|
expect(results[0].name).to be_nil
|
|
14
15
|
expect(results[0].phrase).to eq('')
|
|
@@ -20,6 +21,7 @@ describe MailAddress do
|
|
|
20
21
|
line = '<johndoe@example.com>'
|
|
21
22
|
results = MailAddress.parse(line)
|
|
22
23
|
expect(results[0].format).to eq('johndoe@example.com')
|
|
24
|
+
expect(results[0].format(true)).to eq('johndoe@example.com')
|
|
23
25
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
24
26
|
expect(results[0].name).to be_nil
|
|
25
27
|
expect(results[0].phrase).to eq('')
|
|
@@ -31,6 +33,7 @@ describe MailAddress do
|
|
|
31
33
|
line = 'John Doe <johndoe@example.com>'
|
|
32
34
|
results = MailAddress.parse(line)
|
|
33
35
|
expect(results[0].format).to eq('John Doe <johndoe@example.com>')
|
|
36
|
+
expect(results[0].format(true)).to eq('John Doe <johndoe@example.com>')
|
|
34
37
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
35
38
|
expect(results[0].name).to eq('John Doe')
|
|
36
39
|
expect(results[0].phrase).to eq('John Doe')
|
|
@@ -42,6 +45,7 @@ describe MailAddress do
|
|
|
42
45
|
line = 'ジョン ドゥ <johndoe@example.com>'
|
|
43
46
|
results = MailAddress.parse(line)
|
|
44
47
|
expect(results[0].format).to eq('"ジョン ドゥ" <johndoe@example.com>')
|
|
48
|
+
expect(results[0].format(true)).to eq('"ジョン ドゥ" <johndoe@example.com>')
|
|
45
49
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
46
50
|
expect(results[0].name).to eq('ジョン ドゥ')
|
|
47
51
|
expect(results[0].phrase).to eq('ジョン ドゥ')
|
|
@@ -52,6 +56,7 @@ describe MailAddress do
|
|
|
52
56
|
line = 'Amazon.co.jp アソシエイト・プログラム <associates@amazon.co.jp>'
|
|
53
57
|
results = MailAddress.parse(line)
|
|
54
58
|
expect(results[0].format).to eq('"Amazon.co.jp アソシエイト・プログラム" <associates@amazon.co.jp>')
|
|
59
|
+
expect(results[0].format(true)).to eq('"Amazon.co.jp アソシエイト・プログラム" <associates@amazon.co.jp>')
|
|
55
60
|
expect(results[0].address).to eq('associates@amazon.co.jp')
|
|
56
61
|
expect(results[0].name).to eq('Amazon.co.jp アソシエイト・プログラム')
|
|
57
62
|
expect(results[0].phrase).to eq('Amazon.co.jp アソシエイト・プログラム')
|
|
@@ -63,6 +68,7 @@ describe MailAddress do
|
|
|
63
68
|
line = 'Example (Twitterより) <notify@twitter.com>'
|
|
64
69
|
results = MailAddress.parse(line)
|
|
65
70
|
expect(results[0].format).to eq('"Example (Twitterより)" <notify@twitter.com>')
|
|
71
|
+
expect(results[0].format(true)).to eq('"Example (Twitterより)" <notify@twitter.com>')
|
|
66
72
|
expect(results[0].address).to eq('notify@twitter.com')
|
|
67
73
|
expect(results[0].name).to eq('Example (Twitterより)')
|
|
68
74
|
expect(results[0].phrase).to eq('Example (Twitterより)')
|
|
@@ -74,6 +80,7 @@ describe MailAddress do
|
|
|
74
80
|
line = '"ジョン ドゥ" <johndoe@example.com>'
|
|
75
81
|
results = MailAddress.parse(line)
|
|
76
82
|
expect(results[0].format).to eq('"ジョン ドゥ" <johndoe@example.com>')
|
|
83
|
+
expect(results[0].format(true)).to eq('"ジョン ドゥ" <johndoe@example.com>')
|
|
77
84
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
78
85
|
expect(results[0].name).to eq('ジョン ドゥ')
|
|
79
86
|
expect(results[0].phrase).to eq('ジョン ドゥ')
|
|
@@ -85,6 +92,7 @@ describe MailAddress do
|
|
|
85
92
|
line = 'johndoe@example.com (John Doe)'
|
|
86
93
|
results = MailAddress.parse(line)
|
|
87
94
|
expect(results[0].format).to eq('johndoe@example.com (John Doe)')
|
|
95
|
+
expect(results[0].format(true)).to eq('johndoe@example.com (John Doe)')
|
|
88
96
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
89
97
|
expect(results[0].name).to eq('John Doe')
|
|
90
98
|
expect(results[0].phrase).to eq('(John Doe)')
|
|
@@ -96,6 +104,7 @@ describe MailAddress do
|
|
|
96
104
|
line = 'johndoe@example.com (John (Mid) Doe)'
|
|
97
105
|
results = MailAddress.parse(line)
|
|
98
106
|
expect(results[0].format).to eq('johndoe@example.com (John (Mid) Doe)')
|
|
107
|
+
expect(results[0].format(true)).to eq('johndoe@example.com (John (Mid) Doe)')
|
|
99
108
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
100
109
|
expect(results[0].name).to eq('John (Mid) Doe')
|
|
101
110
|
expect(results[0].phrase).to eq('(John (Mid) Doe)')
|
|
@@ -107,6 +116,7 @@ describe MailAddress do
|
|
|
107
116
|
line = 'johndoe@example.com (John@Doe)'
|
|
108
117
|
results = MailAddress.parse(line)
|
|
109
118
|
expect(results[0].format).to eq('johndoe@example.com (John@Doe)')
|
|
119
|
+
expect(results[0].format(true)).to eq('johndoe@example.com (John@Doe)')
|
|
110
120
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
111
121
|
expect(results[0].name).to eq('John@Doe')
|
|
112
122
|
expect(results[0].phrase).to eq('(John@Doe)')
|
|
@@ -117,6 +127,7 @@ describe MailAddress do
|
|
|
117
127
|
line = 'johndoe@example.com (John, Doe)'
|
|
118
128
|
results = MailAddress.parse(line)
|
|
119
129
|
expect(results[0].format).to eq('johndoe@example.com (John, Doe)')
|
|
130
|
+
expect(results[0].format(true)).to eq('johndoe@example.com (John, Doe)')
|
|
120
131
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
121
132
|
expect(results[0].name).to eq('John, Doe')
|
|
122
133
|
expect(results[0].phrase).to eq('(John, Doe)')
|
|
@@ -128,6 +139,7 @@ describe MailAddress do
|
|
|
128
139
|
line = 'John Doe <johndoe@example.com> (Extra)'
|
|
129
140
|
results = MailAddress.parse(line)
|
|
130
141
|
expect(results[0].format).to eq('"John Doe (Extra)" <johndoe@example.com>')
|
|
142
|
+
expect(results[0].format(true)).to eq('"John Doe (Extra)" <johndoe@example.com>')
|
|
131
143
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
132
144
|
expect(results[0].name).to eq('John Doe (Extra)')
|
|
133
145
|
expect(results[0].phrase).to eq('John Doe (Extra)')
|
|
@@ -139,6 +151,7 @@ describe MailAddress do
|
|
|
139
151
|
line = 'John(Doe <johndoe@example.com>'
|
|
140
152
|
results = MailAddress.parse(line)
|
|
141
153
|
expect(results[0].format).to eq('"John(Doe" <johndoe@example.com>')
|
|
154
|
+
expect(results[0].format(true)).to eq('"John(Doe" <johndoe@example.com>')
|
|
142
155
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
143
156
|
expect(results[0].name).to eq('John(Doe')
|
|
144
157
|
expect(results[0].phrase).to eq('John(Doe')
|
|
@@ -150,6 +163,7 @@ describe MailAddress do
|
|
|
150
163
|
line = 'John ( Doe <johndoe@example.com>'
|
|
151
164
|
results = MailAddress.parse(line)
|
|
152
165
|
expect(results[0].format).to eq('"John ( Doe" <johndoe@example.com>')
|
|
166
|
+
expect(results[0].format(true)).to eq('"John ( Doe" <johndoe@example.com>')
|
|
153
167
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
154
168
|
expect(results[0].name).to eq('John ( Doe')
|
|
155
169
|
expect(results[0].phrase).to eq('John ( Doe')
|
|
@@ -161,6 +175,7 @@ describe MailAddress do
|
|
|
161
175
|
line = '"michael@example.jp" <johndoe@example.com>'
|
|
162
176
|
results = MailAddress.parse(line)
|
|
163
177
|
expect(results[0].format).to eq('"michael@example.jp" <johndoe@example.com>')
|
|
178
|
+
expect(results[0].format(true)).to eq('"michael@example.jp" <johndoe@example.com>')
|
|
164
179
|
expect(results[0].address).to eq('johndoe@example.com')
|
|
165
180
|
expect(results[0].name).to eq('michael@example.jp')
|
|
166
181
|
expect(results[0].phrase).to eq('michael@example.jp')
|
|
@@ -206,6 +221,7 @@ describe MailAddress do
|
|
|
206
221
|
results = MailAddress.parse(line)
|
|
207
222
|
|
|
208
223
|
expect(results[0].format).to eq('johndoe.@example.com')
|
|
224
|
+
expect(results[0].format(true)).to eq('"johndoe."@example.com')
|
|
209
225
|
expect(results[0].address).to eq('johndoe.@example.com')
|
|
210
226
|
expect(results[0].name).to be_nil
|
|
211
227
|
expect(results[0].phrase).to eq('')
|
|
@@ -217,6 +233,7 @@ describe MailAddress do
|
|
|
217
233
|
results = MailAddress.parse(line)
|
|
218
234
|
|
|
219
235
|
expect(results[0].format).to eq('"johndoe."@example.com')
|
|
236
|
+
expect(results[0].format(true)).to eq('"johndoe."@example.com')
|
|
220
237
|
expect(results[0].address).to eq('"johndoe."@example.com')
|
|
221
238
|
expect(results[0].name).to be_nil
|
|
222
239
|
expect(results[0].phrase).to eq('')
|
|
@@ -228,6 +245,7 @@ describe MailAddress do
|
|
|
228
245
|
results = MailAddress.parse(line)
|
|
229
246
|
|
|
230
247
|
expect(results[0].format).to eq('John Doe <johndoe.@example.com>')
|
|
248
|
+
expect(results[0].format(true)).to eq('John Doe <"johndoe."@example.com>')
|
|
231
249
|
expect(results[0].address).to eq('johndoe.@example.com')
|
|
232
250
|
expect(results[0].name).to eq('John Doe')
|
|
233
251
|
expect(results[0].phrase).to eq('John Doe')
|
|
@@ -239,6 +257,7 @@ describe MailAddress do
|
|
|
239
257
|
results = MailAddress.parse(line)
|
|
240
258
|
|
|
241
259
|
expect(results[0].format).to eq('John Doe <"johndoe."@example.com>')
|
|
260
|
+
expect(results[0].format(true)).to eq('John Doe <"johndoe."@example.com>')
|
|
242
261
|
expect(results[0].address).to eq('"johndoe."@example.com')
|
|
243
262
|
expect(results[0].name).to eq('John Doe')
|
|
244
263
|
expect(results[0].phrase).to eq('John Doe')
|
|
@@ -251,6 +270,7 @@ describe MailAddress do
|
|
|
251
270
|
results = MailAddress.parse(line)
|
|
252
271
|
|
|
253
272
|
expect(results[0].format).to eq('john..doe@example.com')
|
|
273
|
+
expect(results[0].format(true)).to eq('"john..doe"@example.com')
|
|
254
274
|
expect(results[0].address).to eq('john..doe@example.com')
|
|
255
275
|
expect(results[0].name).to be_nil
|
|
256
276
|
expect(results[0].phrase).to eq('')
|
|
@@ -262,6 +282,7 @@ describe MailAddress do
|
|
|
262
282
|
results = MailAddress.parse(line)
|
|
263
283
|
|
|
264
284
|
expect(results[0].format).to eq('"john..doe"@example.com')
|
|
285
|
+
expect(results[0].format(true)).to eq('"john..doe"@example.com')
|
|
265
286
|
expect(results[0].address).to eq('"john..doe"@example.com')
|
|
266
287
|
expect(results[0].name).to be_nil
|
|
267
288
|
expect(results[0].phrase).to eq('')
|
|
@@ -273,6 +294,7 @@ describe MailAddress do
|
|
|
273
294
|
results = MailAddress.parse(line)
|
|
274
295
|
|
|
275
296
|
expect(results[0].format).to eq('John Doe <john..doe@example.com>')
|
|
297
|
+
expect(results[0].format(true)).to eq('John Doe <"john..doe"@example.com>')
|
|
276
298
|
expect(results[0].address).to eq('john..doe@example.com')
|
|
277
299
|
expect(results[0].name).to eq('John Doe')
|
|
278
300
|
expect(results[0].phrase).to eq('John Doe')
|
|
@@ -284,6 +306,7 @@ describe MailAddress do
|
|
|
284
306
|
results = MailAddress.parse(line)
|
|
285
307
|
|
|
286
308
|
expect(results[0].format).to eq('John Doe <"john..doe"@example.com>')
|
|
309
|
+
expect(results[0].format(true)).to eq('John Doe <"john..doe"@example.com>')
|
|
287
310
|
expect(results[0].address).to eq('"john..doe"@example.com')
|
|
288
311
|
expect(results[0].name).to eq('John Doe')
|
|
289
312
|
expect(results[0].phrase).to eq('John Doe')
|
|
@@ -296,6 +319,7 @@ describe MailAddress do
|
|
|
296
319
|
line = '"john..doe@example.com'
|
|
297
320
|
results = MailAddress.parse(line)
|
|
298
321
|
expect(results[0].format).to eq('"john..doe@example.com')
|
|
322
|
+
expect(results[0].format(true)).to eq('"john..doe@example.com')
|
|
299
323
|
expect(results[0].address).to be_nil
|
|
300
324
|
expect(results[0].name).to eq('john..doe@example.com') ## IRREGULAR PATTERN
|
|
301
325
|
expect(results[0].phrase).to eq('"john..doe@example.com') ## IRREGULAR PATTERN
|
|
@@ -306,6 +330,7 @@ describe MailAddress do
|
|
|
306
330
|
line = 'john..doe"@example.com'
|
|
307
331
|
results = MailAddress.parse(line)
|
|
308
332
|
expect(results[0].format).to eq('john..doe"@example.com')
|
|
333
|
+
expect(results[0].format(true)).to eq('john..doe"@example.com')
|
|
309
334
|
expect(results[0].address).to be_nil
|
|
310
335
|
expect(results[0].name).to eq('john..doe"@example.com') ## IRREGULAR PATTERN
|
|
311
336
|
expect(results[0].phrase).to eq('john..doe"@example.com') ## IRREGULAR PATTERN
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mail_address
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.2.
|
|
4
|
+
version: 1.2.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kizashi Nagata
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-08-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|