email_inquire 0.1.0 → 0.2.0
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/README.md +16 -10
- data/data/common_providers.txt +43 -0
- data/data/one_time_email_providers.txt +1376 -0
- data/data/uk_tld.txt +15 -0
- data/data/unique_domain_providers.txt +5 -0
- data/lib/email_inquire/inquirer.rb +18 -73
- data/lib/email_inquire/version.rb +1 -1
- metadata +5 -1
data/data/uk_tld.txt
ADDED
@@ -5,6 +5,20 @@ module EmailInquire
|
|
5
5
|
|
6
6
|
class Inquirer
|
7
7
|
|
8
|
+
class << self
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def load_data(filename)
|
13
|
+
data = File.read("#{__dir__}/../../data/#{filename}.txt")
|
14
|
+
lines = data.split("\n")
|
15
|
+
lines.reject! { |line| line[0] == "#" }
|
16
|
+
|
17
|
+
lines.to_set
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
8
22
|
def initialize(email)
|
9
23
|
@email = email.downcase
|
10
24
|
response.email = email
|
@@ -63,51 +77,7 @@ module EmailInquire
|
|
63
77
|
end
|
64
78
|
end
|
65
79
|
|
66
|
-
COMMON_DOMAINS =
|
67
|
-
aim.com
|
68
|
-
aliceadsl.fr
|
69
|
-
aol.co.uk
|
70
|
-
aol.com
|
71
|
-
att.net
|
72
|
-
bbox.fr
|
73
|
-
bellsouth.net
|
74
|
-
blueyonder.co.uk
|
75
|
-
btinternet.com
|
76
|
-
charter.net
|
77
|
-
cox.net
|
78
|
-
free.fr
|
79
|
-
gmail.com
|
80
|
-
gmx.fr
|
81
|
-
googlemail.com
|
82
|
-
hotmail.co.uk
|
83
|
-
hotmail.com
|
84
|
-
hotmail.fr
|
85
|
-
icloud.com
|
86
|
-
laposte.net
|
87
|
-
live.co.uk
|
88
|
-
live.com
|
89
|
-
live.fr
|
90
|
-
me.com
|
91
|
-
msn.com
|
92
|
-
neuf.fr
|
93
|
-
ntlworld.com
|
94
|
-
numericable.fr
|
95
|
-
orange.fr
|
96
|
-
outlook.com
|
97
|
-
outlook.fr
|
98
|
-
rocketmail.com
|
99
|
-
sbcglobal.net
|
100
|
-
sfr.fr
|
101
|
-
sky.com
|
102
|
-
talktalk.net
|
103
|
-
verizon.net
|
104
|
-
virginmedia.com
|
105
|
-
wanadoo.fr
|
106
|
-
yahoo.co.uk
|
107
|
-
yahoo.com
|
108
|
-
yahoo.fr
|
109
|
-
ymail.com
|
110
|
-
).freeze
|
80
|
+
COMMON_DOMAINS = load_data("common_providers").freeze
|
111
81
|
|
112
82
|
def validate_common_domains
|
113
83
|
return response.valid! if COMMON_DOMAINS.include?(domain)
|
@@ -137,23 +107,7 @@ module EmailInquire
|
|
137
107
|
end
|
138
108
|
end
|
139
109
|
|
140
|
-
VALID_UK_TLD =
|
141
|
-
.ac.uk
|
142
|
-
.co.uk
|
143
|
-
.gov.uk
|
144
|
-
.judiciary.uk
|
145
|
-
.ltd.uk
|
146
|
-
.me.uk
|
147
|
-
.mod.uk
|
148
|
-
.net.uk
|
149
|
-
.nhs.uk
|
150
|
-
.nic.uk
|
151
|
-
.org.uk
|
152
|
-
.parliament.uk
|
153
|
-
.plc.uk
|
154
|
-
.police.uk
|
155
|
-
.sch.uk
|
156
|
-
).freeze
|
110
|
+
VALID_UK_TLD = load_data("uk_tld").freeze
|
157
111
|
|
158
112
|
def validate_uk_tld
|
159
113
|
return unless domain.end_with?(".uk")
|
@@ -171,13 +125,7 @@ module EmailInquire
|
|
171
125
|
response.hint!(domain: new_domain) if new_domain != domain
|
172
126
|
end
|
173
127
|
|
174
|
-
UNIQUE_TLD_DOMAINS =
|
175
|
-
free.fr
|
176
|
-
gmail.com
|
177
|
-
laposte.net
|
178
|
-
sfr.fr
|
179
|
-
wanadoo.fr
|
180
|
-
).freeze
|
128
|
+
UNIQUE_TLD_DOMAINS = load_data("unique_domain_providers").freeze
|
181
129
|
|
182
130
|
def validate_domains_with_unique_tld
|
183
131
|
base, tld = domain.split(".")
|
@@ -192,10 +140,7 @@ module EmailInquire
|
|
192
140
|
end
|
193
141
|
end
|
194
142
|
|
195
|
-
|
196
|
-
ONE_TIME_EMAIL_PROVIDERS = %w(
|
197
|
-
yopmail.com
|
198
|
-
).freeze
|
143
|
+
ONE_TIME_EMAIL_PROVIDERS = load_data("one_time_email_providers").freeze
|
199
144
|
|
200
145
|
def validate_one_time_providers
|
201
146
|
response.invalid! if ONE_TIME_EMAIL_PROVIDERS.include?(domain)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: email_inquire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maxime Garcia
|
@@ -98,6 +98,10 @@ files:
|
|
98
98
|
- Rakefile
|
99
99
|
- bin/console
|
100
100
|
- bin/setup
|
101
|
+
- data/common_providers.txt
|
102
|
+
- data/one_time_email_providers.txt
|
103
|
+
- data/uk_tld.txt
|
104
|
+
- data/unique_domain_providers.txt
|
101
105
|
- email_inquire.gemspec
|
102
106
|
- lib/email_inquire.rb
|
103
107
|
- lib/email_inquire/inquirer.rb
|