mail_address 1.2.4 → 1.2.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|