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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c273c57e022c03b757c099fd4245d7616aa4beb6
4
- data.tar.gz: 0b8b1fd6b193b85790bbecb32965c1d37e2af8b2
3
+ metadata.gz: c59f3af0de6a57910e691f12c2f5023077081f04
4
+ data.tar.gz: 109a3c2434e09e90485263c03b30ffbc60a1a3b4
5
5
  SHA512:
6
- metadata.gz: ed4bd05095c5a316a09e3cb73bbf2b303e74e217d2eacec1b2dce0c34496a43b7834e02b8ae42b2e97a2ecf8f2e6c3dc0c20c6e7f940c5de3fc2485856feaaa2
7
- data.tar.gz: 49da2ad5e84ace95734f3814e5f077523e2746f61d25b6f5f84b9c9f49ae10ed3893650bad9e4306fef45999b30b581dfb4c22e41a91aec1b37d8acf809c0bcd
6
+ metadata.gz: 90c04d523dad4c2a132c7f287c2fb26ee5d795241ca713a74e470b4dccc8eb7a65855f2d34c9ded4667c91e5fee340cd9d2175f6cf7575f0d6371330c71a3f5f
7
+ data.tar.gz: 8ea6e8a1b9f06e818af3c613566df0e3ff8014384078a3871c46f8379900801cfbee9e28cb252de2ac56f53eba79538f3519b8a71fc6ba7f08055754a7dd704b
@@ -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(@address) if !@address.nil? && @address.length > 0
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 "<#{@address}>" if !@address.nil? && @address.length > 0
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(@address)
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
@@ -1,3 +1,3 @@
1
1
  module MailAddress
2
- VERSION = "1.2.9"
2
+ VERSION = "1.2.10"
3
3
  end
@@ -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.9
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-05-09 00:00:00.000000000 Z
11
+ date: 2016-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler