email_inquire 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +8 -11
- data/.ruby-version +1 -1
- data/.travis.yml +4 -3
- data/CHANGELOG.md +19 -1
- data/README.md +23 -2
- data/data/one_time_email_providers.txt +226 -9
- data/email_inquire.gemspec +4 -4
- data/lib/email_inquire.rb +20 -0
- data/lib/email_inquire/email_validator.rb +3 -2
- data/lib/email_inquire/inquirer.rb +5 -0
- data/lib/email_inquire/version.rb +1 -1
- metadata +9 -10
data/email_inquire.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path("
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require "email_inquire/version"
|
6
6
|
|
@@ -27,8 +27,8 @@ Gem::Specification.new do |spec|
|
|
27
27
|
|
28
28
|
spec.add_runtime_dependency("damerau-levenshtein", "~> 1.2")
|
29
29
|
|
30
|
-
spec.add_development_dependency("bundler", "~>
|
30
|
+
spec.add_development_dependency("bundler", "~> 2.0")
|
31
31
|
spec.add_development_dependency("rake", "~> 10.0")
|
32
|
-
spec.add_development_dependency("rspec", "~> 3.
|
33
|
-
spec.add_development_dependency("rubocop", "0.
|
32
|
+
spec.add_development_dependency("rspec", "~> 3.8.0")
|
33
|
+
spec.add_development_dependency("rubocop", "0.62.0")
|
34
34
|
end
|
data/lib/email_inquire.rb
CHANGED
@@ -32,4 +32,24 @@ module EmailInquire
|
|
32
32
|
@@custom_invalid_domains
|
33
33
|
end
|
34
34
|
|
35
|
+
def self.custom_valid_domains=(domains)
|
36
|
+
@@custom_valid_domains =
|
37
|
+
case domains
|
38
|
+
when Set
|
39
|
+
domains
|
40
|
+
when Array
|
41
|
+
domains.to_set
|
42
|
+
when nil
|
43
|
+
Set.new
|
44
|
+
else
|
45
|
+
raise ArgumentError, "Unsupported type in `custom_valid_domains=`"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.custom_valid_domains
|
50
|
+
@@custom_valid_domains ||= Set.new
|
51
|
+
|
52
|
+
@@custom_valid_domains
|
53
|
+
end
|
54
|
+
|
35
55
|
end
|
@@ -15,6 +15,7 @@ module EmailInquire
|
|
15
15
|
def valid?
|
16
16
|
return false unless email.count("@") == 1
|
17
17
|
return false if email.length > 255
|
18
|
+
|
18
19
|
name, domain = email.split("@", 2)
|
19
20
|
|
20
21
|
name_valid?(name) && domain_valid?(domain)
|
@@ -38,7 +39,7 @@ module EmailInquire
|
|
38
39
|
){1,8}
|
39
40
|
[a-z]{2,63}
|
40
41
|
\z
|
41
|
-
/x
|
42
|
+
/x.freeze
|
42
43
|
|
43
44
|
def domain_valid?(domain)
|
44
45
|
return false if domain == ""
|
@@ -52,7 +53,7 @@ module EmailInquire
|
|
52
53
|
[a-z0-9]
|
53
54
|
[a-z0-9._%+-]{0,63}
|
54
55
|
\z
|
55
|
-
/x
|
56
|
+
/x.freeze
|
56
57
|
|
57
58
|
def name_valid?(name)
|
58
59
|
return false if name == ""
|
@@ -29,6 +29,7 @@ module EmailInquire
|
|
29
29
|
attr_reader :domain, :email, :name
|
30
30
|
|
31
31
|
VALIDATORS = %i[
|
32
|
+
validate_custom_valid_domains
|
32
33
|
validate_common_domains
|
33
34
|
validate_one_time_providers
|
34
35
|
validate_known_invalid_domains
|
@@ -173,5 +174,9 @@ module EmailInquire
|
|
173
174
|
response.invalid! if EmailInquire.custom_invalid_domains.include?(domain)
|
174
175
|
end
|
175
176
|
|
177
|
+
def validate_custom_valid_domains
|
178
|
+
response.valid! if EmailInquire.custom_valid_domains.include?(domain)
|
179
|
+
end
|
180
|
+
|
176
181
|
end
|
177
182
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: email_inquire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maxime Garcia
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: damerau-levenshtein
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.0'
|
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: '
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
61
|
+
version: 3.8.0
|
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: 3.
|
68
|
+
version: 3.8.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rubocop
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.62.0
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.62.0
|
83
83
|
description: Library to validate email for format, common typos and one-time email
|
84
84
|
providers
|
85
85
|
email:
|
@@ -135,8 +135,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: '0'
|
137
137
|
requirements: []
|
138
|
-
|
139
|
-
rubygems_version: 2.7.4
|
138
|
+
rubygems_version: 3.0.2
|
140
139
|
signing_key:
|
141
140
|
specification_version: 4
|
142
141
|
summary: Library to validate email for format, common typos and one-time email providers
|