email_data 1601260789 → 1602964602
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/.github/workflows/tests.yml +67 -0
- data/.gitignore +1 -1
- data/.rubocop.yml +14 -1
- data/.tool-versions +1 -1
- data/Gemfile.lock +89 -0
- data/README.md +132 -0
- data/Rakefile +4 -1
- data/VERSION +1 -1
- data/bin/helpers.rb +2 -0
- data/bin/publish +20 -1
- data/bin/publish-gem +2 -6
- data/bin/publish-npm +1 -1
- data/bin/sync-disposable-emails +5 -5
- data/data/country_tlds.txt +1 -0
- data/data/disposable_domains.txt +1823 -29
- data/data/disposable_emails.txt +10 -0
- data/data/free_email_domains.txt +307 -0
- data/data/tlds.txt +0 -1
- data/email_data.gemspec +2 -1
- data/lib/email_data.rb +20 -25
- data/lib/email_data/source/active_record.rb +73 -0
- data/lib/email_data/source/file_system.rb +37 -0
- data/package.json +1 -1
- metadata +22 -5
- data/.travis.yml +0 -6
data/email_data.gemspec
CHANGED
@@ -29,11 +29,12 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.executables = spec.files.grep(%r{^exe/}) {|f| File.basename(f) }
|
30
30
|
spec.require_paths = ["lib"]
|
31
31
|
|
32
|
-
spec.add_development_dependency "
|
32
|
+
spec.add_development_dependency "activerecord"
|
33
33
|
spec.add_development_dependency "aitch"
|
34
34
|
spec.add_development_dependency "bundler"
|
35
35
|
spec.add_development_dependency "minitest"
|
36
36
|
spec.add_development_dependency "minitest-utils"
|
37
|
+
spec.add_development_dependency "pg"
|
37
38
|
spec.add_development_dependency "rake"
|
38
39
|
spec.add_development_dependency "root_domain"
|
39
40
|
spec.add_development_dependency "rubocop"
|
data/lib/email_data.rb
CHANGED
@@ -1,39 +1,34 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "forwardable"
|
3
4
|
require "pathname"
|
4
|
-
require "email_data/version"
|
5
5
|
|
6
6
|
module EmailData
|
7
|
-
|
8
|
-
|
7
|
+
require "email_data/version"
|
8
|
+
require "email_data/source/file_system"
|
9
|
+
|
10
|
+
class << self
|
11
|
+
extend Forwardable
|
12
|
+
|
13
|
+
def_delegators :source,
|
14
|
+
:disposable_domains,
|
15
|
+
:disposable_emails,
|
16
|
+
:country_tlds,
|
17
|
+
:free_email_domains,
|
18
|
+
:tlds
|
9
19
|
end
|
10
20
|
|
11
|
-
def self.
|
12
|
-
@
|
21
|
+
def self.source=(source)
|
22
|
+
@source = source
|
13
23
|
end
|
14
24
|
|
15
|
-
def self.
|
16
|
-
@
|
25
|
+
def self.source
|
26
|
+
@source
|
17
27
|
end
|
18
28
|
|
19
|
-
def self.
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
def self.disposable_domains
|
24
|
-
@disposable_domains ||= load_file("disposable_domains.txt")
|
25
|
-
end
|
26
|
-
|
27
|
-
def self.free_email_domains
|
28
|
-
@free_email_domains ||= load_file("free_email_domains.txt")
|
29
|
+
def self.data_dir
|
30
|
+
Pathname.new(File.expand_path("../data", __dir__))
|
29
31
|
end
|
30
32
|
|
31
|
-
|
32
|
-
data_dir
|
33
|
-
.join(filename)
|
34
|
-
.read
|
35
|
-
.lines
|
36
|
-
.map(&:chomp)
|
37
|
-
.reject(&:empty?)
|
38
|
-
end
|
33
|
+
self.source = EmailData::Source::FileSystem
|
39
34
|
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "email_data"
|
4
|
+
|
5
|
+
begin
|
6
|
+
require "active_record"
|
7
|
+
rescue LoadError
|
8
|
+
raise "activerecord is not part of the bundle. Add it to Gemfile."
|
9
|
+
end
|
10
|
+
|
11
|
+
module EmailData
|
12
|
+
module Source
|
13
|
+
class ActiveRecord
|
14
|
+
class ApplicationRecord < ::ActiveRecord::Base
|
15
|
+
self.abstract_class = true
|
16
|
+
end
|
17
|
+
|
18
|
+
class TLD < ApplicationRecord
|
19
|
+
self.table_name = "tlds"
|
20
|
+
end
|
21
|
+
|
22
|
+
class CountryTLD < ApplicationRecord
|
23
|
+
self.table_name = "country_tlds"
|
24
|
+
end
|
25
|
+
|
26
|
+
class DisposableEmail < ApplicationRecord
|
27
|
+
self.table_name = "disposable_emails"
|
28
|
+
end
|
29
|
+
|
30
|
+
class DisposableDomain < ApplicationRecord
|
31
|
+
self.table_name = "disposable_domains"
|
32
|
+
end
|
33
|
+
|
34
|
+
class FreeEmailDomain < ApplicationRecord
|
35
|
+
self.table_name = "free_email_domains"
|
36
|
+
end
|
37
|
+
|
38
|
+
class Collection
|
39
|
+
def initialize(model)
|
40
|
+
@model = model
|
41
|
+
end
|
42
|
+
|
43
|
+
def include?(value)
|
44
|
+
@model.where(name: value).exists?
|
45
|
+
end
|
46
|
+
|
47
|
+
def each(&block)
|
48
|
+
@model.find_each(&block)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.tlds
|
53
|
+
@tlds ||= Collection.new(TLD)
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.country_tlds
|
57
|
+
@country_tlds ||= Collection.new(CountryTLD)
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.disposable_emails
|
61
|
+
@disposable_emails ||= Collection.new(DisposableEmail)
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.disposable_domains
|
65
|
+
@disposable_domains ||= Collection.new(DisposableDomain)
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.free_email_domains
|
69
|
+
@free_email_domains ||= Collection.new(FreeEmailDomain)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EmailData
|
4
|
+
module Source
|
5
|
+
class FileSystem
|
6
|
+
def self.tlds
|
7
|
+
@tlds ||= load_file("tlds.txt")
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.country_tlds
|
11
|
+
@country_tlds ||= load_file("country_tlds.txt")
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.disposable_emails
|
15
|
+
@disposable_emails ||= load_file("disposable_emails.txt")
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.disposable_domains
|
19
|
+
@disposable_domains ||= load_file("disposable_domains.txt")
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.free_email_domains
|
23
|
+
@free_email_domains ||= load_file("free_email_domains.txt")
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.load_file(filename)
|
27
|
+
EmailData
|
28
|
+
.data_dir
|
29
|
+
.join(filename)
|
30
|
+
.read
|
31
|
+
.lines
|
32
|
+
.map(&:chomp)
|
33
|
+
.reject(&:empty?)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fnando/email_data",
|
3
3
|
"description": "This project is a compilation of datasets related to emails. Includes disposable emails, disposable domains, and free email services.",
|
4
|
-
"version": "
|
4
|
+
"version": "1602964602.0.0",
|
5
5
|
"license": "MIT",
|
6
6
|
"repository": {
|
7
7
|
"type": "git",
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: email_data
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '
|
4
|
+
version: '1602964602'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nando Vieira
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pg
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: rake
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -159,12 +173,13 @@ extensions: []
|
|
159
173
|
extra_rdoc_files: []
|
160
174
|
files:
|
161
175
|
- ".github/FUNDING.yml"
|
176
|
+
- ".github/workflows/tests.yml"
|
162
177
|
- ".gitignore"
|
163
178
|
- ".rubocop.yml"
|
164
179
|
- ".tool-versions"
|
165
|
-
- ".travis.yml"
|
166
180
|
- CODE_OF_CONDUCT.md
|
167
181
|
- Gemfile
|
182
|
+
- Gemfile.lock
|
168
183
|
- LICENSE.txt
|
169
184
|
- README.md
|
170
185
|
- Rakefile
|
@@ -189,6 +204,8 @@ files:
|
|
189
204
|
- data/tlds.txt
|
190
205
|
- email_data.gemspec
|
191
206
|
- lib/email_data.rb
|
207
|
+
- lib/email_data/source/active_record.rb
|
208
|
+
- lib/email_data/source/file_system.rb
|
192
209
|
- lib/email_data/version.rb
|
193
210
|
- package.json
|
194
211
|
homepage: https://github.com/fnando/email_data
|
@@ -212,7 +229,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
229
|
- !ruby/object:Gem::Version
|
213
230
|
version: '0'
|
214
231
|
requirements: []
|
215
|
-
rubygems_version: 3.1.
|
232
|
+
rubygems_version: 3.1.4
|
216
233
|
signing_key:
|
217
234
|
specification_version: 4
|
218
235
|
summary: This project is a compilation of datasets related to emails. Includes disposable
|