mail_address 1.1.1 → 1.1.2
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 +1 -4
- data/lib/mail_address/mail_address.rb +4 -4
- data/lib/mail_address/version.rb +1 -1
- data/spec/mail_address_spec.rb +57 -5
- 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: ccb2c082070db454ef985f2a87325823c351097d
|
|
4
|
+
data.tar.gz: 4b6a338e58922edfba00921031ca331293f0b6fa
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fda758c1ac169360f0a18b9c8390ebf82022e471f70c19939b715b553f8b1ba8eb5a3ae68b2dd9405cef8b84bfff751e3a9c509a57e86e3f1e0e9fff57f69436
|
|
7
|
+
data.tar.gz: 47a765205ea2ae07b07cb8029245c14bdb96e9baa4c415395eb441ed5e5713b99c9a9b47078c9caf14fd88c7449b303fc066cce4547991aa119993e0c93efadb
|
data/lib/mail_address/address.rb
CHANGED
|
@@ -5,7 +5,6 @@ module MailAddress
|
|
|
5
5
|
attr_accessor :phrase, :address, :original
|
|
6
6
|
|
|
7
7
|
def initialize(phrase, address, original)
|
|
8
|
-
|
|
9
8
|
@address = address
|
|
10
9
|
@phrase = phrase
|
|
11
10
|
@original = original
|
|
@@ -17,9 +16,7 @@ module MailAddress
|
|
|
17
16
|
end
|
|
18
17
|
|
|
19
18
|
# invalid address
|
|
20
|
-
if @address.nil?
|
|
21
|
-
@phrase = original
|
|
22
|
-
end
|
|
19
|
+
@phrase = original if @address.nil?
|
|
23
20
|
end
|
|
24
21
|
|
|
25
22
|
ATEXT = '[\-\w !#$%&\'*+/=?^`{|}~]'
|
|
@@ -5,13 +5,13 @@ module MailAddress
|
|
|
5
5
|
lines = addresses.grep(String)
|
|
6
6
|
line = lines.join('')
|
|
7
7
|
|
|
8
|
-
#
|
|
9
|
-
if line.
|
|
8
|
+
# empty
|
|
9
|
+
if line.strip.empty?
|
|
10
10
|
return [ MailAddress::Address.new(line, nil, line) ]
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
#
|
|
14
|
-
|
|
13
|
+
# undisclosed-recipient
|
|
14
|
+
if line.match(/undisclosed[ \-]recipients?: ?;?/i)
|
|
15
15
|
return [ MailAddress::Address.new(line, nil, line) ]
|
|
16
16
|
end
|
|
17
17
|
|
data/lib/mail_address/version.rb
CHANGED
data/spec/mail_address_spec.rb
CHANGED
|
@@ -250,7 +250,7 @@ describe MailAddress do
|
|
|
250
250
|
expect(results[0].original).to eq(line)
|
|
251
251
|
end
|
|
252
252
|
|
|
253
|
-
it "local part only" do
|
|
253
|
+
it "local part only(treated as invalid)" do
|
|
254
254
|
# if local part only, do not treat as an email address
|
|
255
255
|
line = "localpartonly"
|
|
256
256
|
results = MailAddress.parse(line)
|
|
@@ -263,6 +263,32 @@ describe MailAddress do
|
|
|
263
263
|
expect(results[0].original).to eq(line)
|
|
264
264
|
end
|
|
265
265
|
|
|
266
|
+
it "includes invalid addresses only among valid addresses " do
|
|
267
|
+
line = "aaaa, xyz@example.com, bbbb"
|
|
268
|
+
results = MailAddress.parse(line)
|
|
269
|
+
expect(results[0].format).to eq("aaaa")
|
|
270
|
+
expect(results[0].address).to be_nil
|
|
271
|
+
expect(results[0].name).to eq("aaaa")
|
|
272
|
+
expect(results[0].phrase).to eq("aaaa")
|
|
273
|
+
expect(results[0].host).to be_nil
|
|
274
|
+
expect(results[0].user).to eq("")
|
|
275
|
+
expect(results[0].original).to eq("aaaa")
|
|
276
|
+
expect(results[1].format).to eq("xyz@example.com")
|
|
277
|
+
expect(results[1].address).to eq("xyz@example.com")
|
|
278
|
+
expect(results[1].name).to be_nil
|
|
279
|
+
expect(results[1].phrase).to eq("")
|
|
280
|
+
expect(results[1].host).to eq("example.com")
|
|
281
|
+
expect(results[1].user).to eq("xyz")
|
|
282
|
+
expect(results[1].original).to eq("xyz@example.com")
|
|
283
|
+
expect(results[2].format).to eq("bbbb")
|
|
284
|
+
expect(results[2].address).to be_nil
|
|
285
|
+
expect(results[2].name).to eq("bbbb")
|
|
286
|
+
expect(results[2].phrase).to eq("bbbb")
|
|
287
|
+
expect(results[2].host).to be_nil
|
|
288
|
+
expect(results[2].user).to eq("")
|
|
289
|
+
expect(results[2].original).to eq("bbbb")
|
|
290
|
+
end
|
|
291
|
+
|
|
266
292
|
it "a lot of types of undisclosed recipients" do
|
|
267
293
|
array = [
|
|
268
294
|
'undisclosed-recipients: ;',
|
|
@@ -276,7 +302,6 @@ describe MailAddress do
|
|
|
276
302
|
|
|
277
303
|
array.each do |line|
|
|
278
304
|
results = MailAddress.parse(line)
|
|
279
|
-
# expect(results[0].format).to eq(%Q("#{line}"))
|
|
280
305
|
expect(results[0].format).to eq(line)
|
|
281
306
|
expect(results[0].address).to be_nil
|
|
282
307
|
expect(results[0].name).to eq(line)
|
|
@@ -334,9 +359,10 @@ describe MailAddress do
|
|
|
334
359
|
|
|
335
360
|
array.each do |line|
|
|
336
361
|
results = MailAddress.parse(line)
|
|
362
|
+
line.gsub!(';', '')
|
|
337
363
|
expect(results[0].format).to eq(line)
|
|
338
364
|
expect(results[0].address).to be_nil
|
|
339
|
-
expect(results[0].name).to eq(line)
|
|
365
|
+
expect(results[0].name).to eq(line.strip)
|
|
340
366
|
expect(results[0].phrase).to eq(line)
|
|
341
367
|
expect(results[0].host).to be_nil
|
|
342
368
|
expect(results[0].user).to eq("")
|
|
@@ -344,6 +370,32 @@ describe MailAddress do
|
|
|
344
370
|
end
|
|
345
371
|
end
|
|
346
372
|
|
|
373
|
+
it "all are invalid" do
|
|
374
|
+
line = 'aa aa, bb (bb), cccc'
|
|
375
|
+
results = MailAddress.parse(line)
|
|
376
|
+
expect(results[0].format).to eq('aa aa')
|
|
377
|
+
expect(results[0].address).to be_nil
|
|
378
|
+
expect(results[0].name).to eq('aa aa')
|
|
379
|
+
expect(results[0].phrase).to eq('aa aa')
|
|
380
|
+
expect(results[0].host).to be_nil
|
|
381
|
+
expect(results[0].user).to eq('')
|
|
382
|
+
expect(results[0].original).to eq('aa aa')
|
|
383
|
+
expect(results[1].format).to eq('bb (bb)')
|
|
384
|
+
expect(results[1].address).to be_nil
|
|
385
|
+
expect(results[1].name).to eq('bb (bb)')
|
|
386
|
+
expect(results[1].phrase).to eq('bb (bb)')
|
|
387
|
+
expect(results[1].host).to be_nil
|
|
388
|
+
expect(results[1].user).to eq('')
|
|
389
|
+
expect(results[1].original).to eq('bb (bb)')
|
|
390
|
+
expect(results[2].format).to eq('cccc')
|
|
391
|
+
expect(results[2].address).to be_nil
|
|
392
|
+
expect(results[2].name).to eq('cccc')
|
|
393
|
+
expect(results[2].phrase).to eq('cccc')
|
|
394
|
+
expect(results[2].host).to be_nil
|
|
395
|
+
expect(results[2].user).to eq('')
|
|
396
|
+
expect(results[2].original).to eq('cccc')
|
|
397
|
+
end
|
|
398
|
+
|
|
347
399
|
it "empty string or nil" do
|
|
348
400
|
# empty string
|
|
349
401
|
line = ''
|
|
@@ -407,8 +459,8 @@ describe MailAddress do
|
|
|
407
459
|
expect(results[0].format).to eq('Sf 山田 太郎@example.com')
|
|
408
460
|
expect(results[0].address).not_to eq("Sf@example.com") ## important!
|
|
409
461
|
expect(results[0].address).to be_nil ## important!
|
|
410
|
-
expect(results[0].name).to eq('山田
|
|
411
|
-
expect(results[0].phrase).to eq('山田
|
|
462
|
+
expect(results[0].name).to eq('Sf 山田 太郎@example.com') ## I don't care whatever returns
|
|
463
|
+
expect(results[0].phrase).to eq('Sf 山田 太郎@example.com') ## I don't care whatever returns
|
|
412
464
|
expect(results[0].host).to be_nil
|
|
413
465
|
expect(results[0].user).to eq('')
|
|
414
466
|
expect(results[0].original).to eq('Sf 山田 太郎@example.com')
|
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.1.
|
|
4
|
+
version: 1.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kizashi Nagata
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-04-
|
|
11
|
+
date: 2015-04-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|