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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c3df155a843a41e44b3cd71ead006d7b8eec109
4
- data.tar.gz: e4c5a5226870fe2a2c6c711f4702d036e18077b3
3
+ metadata.gz: ccb2c082070db454ef985f2a87325823c351097d
4
+ data.tar.gz: 4b6a338e58922edfba00921031ca331293f0b6fa
5
5
  SHA512:
6
- metadata.gz: 25b66af8271b90ac1bf4bb5578c1829639d8bc840b210223b50bb2f63d6981b92ff6ac0cc6bdf12fac0a03de22284551b917266e48475e02107f06587db0967f
7
- data.tar.gz: 2f3a9775c6621af6a87e15f8c0c10ffee43843cec22d57418bca53304241c6ca9e4d6e8fa5195e8a13555727300958547277d2f8495e20955a70750904c15b78
6
+ metadata.gz: fda758c1ac169360f0a18b9c8390ebf82022e471f70c19939b715b553f8b1ba8eb5a3ae68b2dd9405cef8b84bfff751e3a9c509a57e86e3f1e0e9fff57f69436
7
+ data.tar.gz: 47a765205ea2ae07b07cb8029245c14bdb96e9baa4c415395eb441ed5e5713b99c9a9b47078c9caf14fd88c7449b303fc066cce4547991aa119993e0c93efadb
@@ -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? && (phrase.nil? || phrase == "")
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
- # undisclosed-recipient
9
- if line.match(/undisclosed[ \-]recipients?: ?;?/i)
8
+ # empty
9
+ if line.strip.empty?
10
10
  return [ MailAddress::Address.new(line, nil, line) ]
11
11
  end
12
12
 
13
- # obviously all email address(es) are invalid
14
- unless line.match(/[a-z0-9\.\-"_\+]@/i)
13
+ # undisclosed-recipient
14
+ if line.match(/undisclosed[ \-]recipients?: ?;?/i)
15
15
  return [ MailAddress::Address.new(line, nil, line) ]
16
16
  end
17
17
 
@@ -1,3 +1,3 @@
1
1
  module MailAddress
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -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('山田 太郎') ## I don't care whatever returns
411
- expect(results[0].phrase).to eq('山田 太郎') ## I don't care whatever returns
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.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-21 00:00:00.000000000 Z
11
+ date: 2015-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler