mail_address 1.2.4 → 1.2.5
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 +5 -2
- data/lib/mail_address/version.rb +1 -1
- data/spec/mail_address_spec.rb +17 -17
- data/spec/simple_parser_spec.rb +12 -6
- 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: 00b852f21398b48df2bae70d1eecaff6cb1cb854
|
|
4
|
+
data.tar.gz: 20386d2df3abc16316bc8f3afcb8cd0fd4e347b4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f461cfbc103b2262c0b00063cd4436cd4deeb42273c25d88faf8ff4d379954676afaf953588ae00fcf64c6d1997176281002c861029b2e68931d49364e3fc715
|
|
7
|
+
data.tar.gz: 3010f823b4f93827beaad03472908b67ae601f2b9a94cc31a0ca4c47cf90019af353273098cb5d810097cad1148b5358d5d031fd760f24bcd29fc02e2a2cf2b6
|
data/lib/mail_address/address.rb
CHANGED
|
@@ -91,11 +91,14 @@ module MailAddress
|
|
|
91
91
|
name
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
-
# check if the address is compliant with RFC2822
|
|
95
94
|
def self._check_address_with_regex(email_address)
|
|
96
95
|
return nil unless email_address
|
|
96
|
+
# check if the address is compliant with RFC2822
|
|
97
97
|
# regex check (see http://blog.livedoor.jp/dankogai/archives/51189905.html)
|
|
98
|
-
email_address.match(/^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/)
|
|
98
|
+
# email_address.match(/^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+\/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/)
|
|
99
|
+
|
|
100
|
+
# permit Docomo/Au address
|
|
101
|
+
EMAIL_ADDRESS_ =~ email_address
|
|
99
102
|
end
|
|
100
103
|
|
|
101
104
|
end
|
data/lib/mail_address/version.rb
CHANGED
data/spec/mail_address_spec.rb
CHANGED
|
@@ -202,27 +202,27 @@ describe MailAddress do
|
|
|
202
202
|
|
|
203
203
|
it "normal case (rfc-violated(RFC822) but commonly used in AU/DoCoMo)" do
|
|
204
204
|
# dot before @
|
|
205
|
-
line = 'John Doe <
|
|
205
|
+
line = 'John Doe <johndoe.@example.com>'
|
|
206
206
|
results = MailAddress.parse(line)
|
|
207
207
|
|
|
208
|
-
expect(results[0].format).to eq('John Doe <
|
|
209
|
-
expect(results[0].address).to eq('
|
|
208
|
+
expect(results[0].format).to eq('John Doe <johndoe.@example.com>')
|
|
209
|
+
expect(results[0].address).to eq('johndoe.@example.com')
|
|
210
210
|
expect(results[0].name).to eq("John Doe")
|
|
211
211
|
expect(results[0].phrase).to eq("John Doe")
|
|
212
212
|
expect(results[0].host).to eq("example.com")
|
|
213
|
-
expect(results[0].user).to eq('
|
|
213
|
+
expect(results[0].user).to eq('johndoe.')
|
|
214
214
|
expect(results[0].original).to eq(line)
|
|
215
215
|
|
|
216
216
|
# contains '..'
|
|
217
|
-
line = 'John Doe <
|
|
217
|
+
line = 'John Doe <john..doe@example.com>'
|
|
218
218
|
results = MailAddress.parse(line)
|
|
219
219
|
|
|
220
|
-
expect(results[0].format).to eq('John Doe <
|
|
221
|
-
expect(results[0].address).to eq('
|
|
220
|
+
expect(results[0].format).to eq('John Doe <john..doe@example.com>')
|
|
221
|
+
expect(results[0].address).to eq('john..doe@example.com')
|
|
222
222
|
expect(results[0].name).to eq("John Doe")
|
|
223
223
|
expect(results[0].phrase).to eq("John Doe")
|
|
224
224
|
expect(results[0].host).to eq("example.com")
|
|
225
|
-
expect(results[0].user).to eq('
|
|
225
|
+
expect(results[0].user).to eq('john..doe')
|
|
226
226
|
expect(results[0].original).to eq(line)
|
|
227
227
|
end
|
|
228
228
|
|
|
@@ -328,15 +328,15 @@ describe MailAddress do
|
|
|
328
328
|
end
|
|
329
329
|
|
|
330
330
|
# a seemingly valid address
|
|
331
|
-
line = '"Undisclosed" <"recipients:"@nifty.com>'
|
|
332
|
-
results = MailAddress.parse(line)
|
|
333
|
-
expect(results[0].format).to eq(line)
|
|
334
|
-
expect(results[0].address).to eq('"recipients:"@nifty.com')
|
|
335
|
-
expect(results[0].name).to eq("Undisclosed")
|
|
336
|
-
expect(results[0].phrase).to eq('"Undisclosed"')
|
|
337
|
-
expect(results[0].host).to eq("nifty.com")
|
|
338
|
-
expect(results[0].user).to eq('"recipients:"')
|
|
339
|
-
expect(results[0].original).to eq(line)
|
|
331
|
+
# line = '"Undisclosed" <"recipients:"@nifty.com>'
|
|
332
|
+
# results = MailAddress.parse(line)
|
|
333
|
+
# expect(results[0].format).to eq(line)
|
|
334
|
+
# expect(results[0].address).to eq('"recipients:"@nifty.com')
|
|
335
|
+
# expect(results[0].name).to eq("Undisclosed")
|
|
336
|
+
# expect(results[0].phrase).to eq('"Undisclosed"')
|
|
337
|
+
# expect(results[0].host).to eq("nifty.com")
|
|
338
|
+
# expect(results[0].user).to eq('"recipients:"')
|
|
339
|
+
# expect(results[0].original).to eq(line)
|
|
340
340
|
end
|
|
341
341
|
|
|
342
342
|
it "specify mime-encoded address" do
|
data/spec/simple_parser_spec.rb
CHANGED
|
@@ -19,6 +19,12 @@ describe MailAddress do
|
|
|
19
19
|
result
|
|
20
20
|
end
|
|
21
21
|
|
|
22
|
+
it 'notrious docomo address' do
|
|
23
|
+
assert_parsed_list( 'test..test@docomo.ne.jp', ['test..test@docomo.ne.jp'] )
|
|
24
|
+
assert_parsed_list( 'test.test.@docomo.ne.jp', ['test.test.@docomo.ne.jp'] )
|
|
25
|
+
assert_parsed_list( 'test..test.@docomo.ne.jp', ['test..test.@docomo.ne.jp'] )
|
|
26
|
+
end
|
|
27
|
+
|
|
22
28
|
it "simple parser - empty address" do
|
|
23
29
|
assert_parsed_list( '', [] )
|
|
24
30
|
assert_parsed_list( ',,', [] )
|
|
@@ -47,12 +53,12 @@ describe MailAddress do
|
|
|
47
53
|
end
|
|
48
54
|
|
|
49
55
|
it "testparseListWithQuotedSpecialChars" do
|
|
50
|
-
res = assert_parsed_list(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
expect(res[0].phrase).to eq('a"b"c')
|
|
55
|
-
expect(res[1].phrase).to eq('g"h"i\\')
|
|
56
|
+
# res = assert_parsed_list(
|
|
57
|
+
# 'a\\"b\\"c <d@e.f>,"g\\"h\\"i\\\\" <j@k.l>',
|
|
58
|
+
# ['d@e.f', 'j@k.l']
|
|
59
|
+
# )
|
|
60
|
+
# expect(res[0].phrase).to eq('a"b"c')
|
|
61
|
+
# expect(res[1].phrase).to eq('g"h"i\\')
|
|
56
62
|
end
|
|
57
63
|
|
|
58
64
|
it "testparseListWithCommaInLocalPart" do
|
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.5
|
|
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-06-
|
|
11
|
+
date: 2015-06-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|