email_address 0.1.8 → 0.1.9
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/email_address.gemspec +3 -3
- data/lib/email_address/exchanger.rb +13 -5
- data/lib/email_address/host.rb +11 -5
- data/lib/email_address/version.rb +1 -1
- data/test/email_address/test_address.rb +3 -3
- data/test/email_address/test_config.rb +2 -2
- data/test/email_address/test_host.rb +2 -2
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3825a1fafdf4659a5bc444b2bea01e83d4a52a0ae3faf57042c2cf83cae0d364
|
4
|
+
data.tar.gz: e9c2f046f52648f7f7f2e0326457f1aaa11f36e075e87d40818a34de7a84f2f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39f199aab0bd33b42a57841df03a033142217aa5a39fe0652b779c4522509d450660178fc51eee23bc3111905a967475ac3625718d020d275ef9d697b672fe79
|
7
|
+
data.tar.gz: e3ee79489ea98a0b6c11a3b438e84087833ce9782f16bf3865d7169514cd9a939f383a17e6ef2b695273351cbd427de2f36332d0d63e693c99c6f3fa7173430b
|
data/email_address.gemspec
CHANGED
@@ -19,17 +19,17 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_development_dependency "rake"
|
22
|
-
spec.add_development_dependency "minitest", "~> 5.
|
22
|
+
spec.add_development_dependency "minitest", "~> 5.11"
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
24
|
if RUBY_PLATFORM == 'java'
|
25
25
|
spec.add_development_dependency "activerecord", "= 4.2.5"
|
26
26
|
spec.add_development_dependency "activerecord-jdbcsqlite3-adapter", '=1.3.19'
|
27
27
|
else
|
28
|
-
spec.add_development_dependency "activerecord", "~> 5.
|
28
|
+
spec.add_development_dependency "activerecord", "~> 5.2.0.rc2"
|
29
29
|
spec.add_development_dependency "sqlite3"
|
30
30
|
end
|
31
31
|
spec.add_development_dependency "codeclimate-test-reporter"
|
32
32
|
|
33
33
|
spec.add_dependency "simpleidn"
|
34
|
-
spec.add_dependency "netaddr", "~>
|
34
|
+
spec.add_dependency "netaddr", "~> 2.0"
|
35
35
|
end
|
@@ -92,14 +92,22 @@ module EmailAddress
|
|
92
92
|
|
93
93
|
# Given a cidr (ip/bits) and ip address, returns true on match. Caches cidr object.
|
94
94
|
def in_cidr?(cidr)
|
95
|
-
c = NetAddr::CIDR.create(cidr)
|
96
95
|
if cidr.include?(":")
|
97
|
-
|
96
|
+
c = NetAddr::IPv6Net.parse(cidr)
|
97
|
+
return true if mx_ips.find do |ip|
|
98
|
+
next unless ip.include?(":")
|
99
|
+
rel = c.rel NetAddr::IPv6Net.parse(ip)
|
100
|
+
!rel.nil? && rel >= 0
|
101
|
+
end
|
98
102
|
elsif cidr.include?(".")
|
99
|
-
|
100
|
-
|
101
|
-
|
103
|
+
c = NetAddr::IPv4Net.parse(cidr)
|
104
|
+
return true if mx_ips.find do |ip|
|
105
|
+
next if ip.include?(":")
|
106
|
+
rel = c.rel NetAddr::IPv4Net.parse(ip)
|
107
|
+
!rel.nil? && rel >= 0
|
108
|
+
end
|
102
109
|
end
|
110
|
+
false
|
103
111
|
end
|
104
112
|
end
|
105
113
|
end
|
data/lib/email_address/host.rb
CHANGED
@@ -455,11 +455,17 @@ module EmailAddress
|
|
455
455
|
|
456
456
|
def localhost?
|
457
457
|
if self.ip_address
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
458
|
+
rel =
|
459
|
+
if self.ip_address.include?(":")
|
460
|
+
NetAddr::IPv6Net.parse("::1").rel(
|
461
|
+
NetAddr::IPv6Net.parse(self.ip_address)
|
462
|
+
)
|
463
|
+
else
|
464
|
+
NetAddr::IPv4Net.parse("127.0.0.0/8").rel(
|
465
|
+
NetAddr::IPv4Net.parse(self.ip_address)
|
466
|
+
)
|
467
|
+
end
|
468
|
+
!rel.nil? && rel >= 0
|
463
469
|
else
|
464
470
|
self.host_name == 'localhost'
|
465
471
|
end
|
@@ -80,14 +80,14 @@ class TestAddress < Minitest::Test
|
|
80
80
|
assert_equal EmailAddress.error("user1"), :domain_invalid
|
81
81
|
assert_equal EmailAddress.error("user1", host_local:true), :domain_does_not_accept_email
|
82
82
|
assert_equal EmailAddress.error("user1@localhost", host_local:true), :domain_does_not_accept_email
|
83
|
-
|
83
|
+
assert_nil EmailAddress.error("user2@localhost", host_local:true, dns_lookup: :off, host_validation: :syntax)
|
84
84
|
end
|
85
85
|
|
86
86
|
def test_regexen
|
87
87
|
assert "First.Last+TAG@example.com".match(EmailAddress::Address::CONVENTIONAL_REGEX)
|
88
88
|
assert "First.Last+TAG@example.com".match(EmailAddress::Address::STANDARD_REGEX)
|
89
|
-
|
90
|
-
|
89
|
+
assert_nil "First.Last+TAGexample.com".match(EmailAddress::Address::STANDARD_REGEX)
|
90
|
+
assert_nil "First#Last+TAGexample.com".match(EmailAddress::Address::CONVENTIONAL_REGEX)
|
91
91
|
assert "aasdf-34-.z@example.com".match(EmailAddress::Address::RELAXED_REGEX)
|
92
92
|
end
|
93
93
|
|
@@ -18,11 +18,11 @@ class TestConfig < MiniTest::Test
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_provider
|
21
|
-
|
21
|
+
assert_nil EmailAddress::Config.provider(:github)
|
22
22
|
EmailAddress::Config.provider(:github, host_match: %w(github.com), local_format: :standard)
|
23
23
|
assert_equal :standard, EmailAddress::Config.provider(:github)[:local_format]
|
24
24
|
assert_equal :github, EmailAddress::Host.new("github.com").provider
|
25
25
|
EmailAddress::Config.providers.delete(:github)
|
26
|
-
|
26
|
+
assert_nil EmailAddress::Config.provider(:github)
|
27
27
|
end
|
28
28
|
end
|
@@ -113,10 +113,10 @@ class TestHost < MiniTest::Test
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def test_errors
|
116
|
-
|
116
|
+
assert_nil EmailAddress::Host.new("yahoo.com").error
|
117
117
|
assert_equal EmailAddress::Host.new("example.com").error, :domain_does_not_accept_email
|
118
118
|
assert_equal EmailAddress::Host.new("yahoo.wtf").error, :domain_unknown
|
119
|
-
|
119
|
+
assert_nil EmailAddress::Host.new("ajsdfhajshdfklasjhd.wtf", host_validation: :syntax).error
|
120
120
|
assert_equal EmailAddress::Host.new("ya hoo.com", host_validation: :syntax).error, :domain_invalid
|
121
121
|
assert_equal EmailAddress::Host.new("[127.0.0.1]").error, :ip_address_forbidden
|
122
122
|
assert_equal EmailAddress::Host.new("[127.0.0.666]", host_allow_ip:true).error, :ipv4_address_invalid
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: email_address
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Allen Fair
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.
|
33
|
+
version: '5.11'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.
|
40
|
+
version: '5.11'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 5.
|
61
|
+
version: 5.2.0.rc2
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 5.
|
68
|
+
version: 5.2.0.rc2
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sqlite3
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
117
|
+
version: '2.0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
124
|
+
version: '2.0'
|
125
125
|
description: The EmailAddress Gem to work with and validate email addresses.
|
126
126
|
email:
|
127
127
|
- allen.fair@gmail.com
|