fake_email_validator 0.0.5 → 1.0.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/.travis.yml +1 -1
- data/README.md +7 -1
- data/config/fake_domains.list +23 -0
- data/fake_email_validator.gemspec +4 -4
- data/lib/fake_email_validator.rb +3 -1
- data/test/test_fake_email_validator.rb +22 -2
- metadata +22 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca63fcd2105a1e1f8bc6b78c54c056a719c4b853
|
4
|
+
data.tar.gz: 17a0b91cb0856467202eaf055f5f722bb4f749de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6bd7efa9885d1732242438728879f6ee3ca6b92b3a6a8534e4a931c8e01a2ccf3c18a5a598ea2f4a6838c0cba17e19d2a52d0005b6d71b0ae38f67054fd352f0
|
7
|
+
data.tar.gz: 20eec5d90e7a75bacf2ed3b04a40fdf6922467b9bca2cf315c224d086627df529937443e01538c6f8feb5d4e10be84deb82f5e3c19693a6ad076415c75d5be32
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# fake_email_validator
|
1
|
+
# fake_email_validator [](https://travis-ci.org/maxd/fake_email_validator)
|
2
2
|
|
3
3
|
E-Mail validator for Rails to block services like mailinator.com
|
4
4
|
|
@@ -16,6 +16,12 @@ Or install it yourself as:
|
|
16
16
|
|
17
17
|
$ gem install fake_email_validator
|
18
18
|
|
19
|
+
## How to use?
|
20
|
+
|
21
|
+
Add validator to your User model:
|
22
|
+
|
23
|
+
validates :email, fake_email: true
|
24
|
+
|
19
25
|
## Contributing
|
20
26
|
|
21
27
|
1. Fork it ( http://github.com/maxd/fake_email_validator/fork )
|
data/config/fake_domains.list
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
0clickemail.com
|
4
4
|
0wnd.net
|
5
5
|
0wnd.org
|
6
|
+
10mail.org
|
6
7
|
10minutemail.com
|
7
8
|
20minutemail.com
|
8
9
|
2prong.com
|
@@ -16,6 +17,7 @@
|
|
16
17
|
675hosting.com
|
17
18
|
675hosting.net
|
18
19
|
675hosting.org
|
20
|
+
6paq.com
|
19
21
|
6url.com
|
20
22
|
75hosting.com
|
21
23
|
75hosting.net
|
@@ -23,11 +25,15 @@
|
|
23
25
|
7tags.com
|
24
26
|
9ox.net
|
25
27
|
a-bc.net
|
28
|
+
abyssmail.com
|
29
|
+
acentri.com
|
26
30
|
afrobacon.com
|
27
31
|
ajaxapp.net
|
32
|
+
alivance.com
|
28
33
|
amilegit.com
|
29
34
|
amiri.net
|
30
35
|
amiriindustries.com
|
36
|
+
anappthat.com
|
31
37
|
anonbox.net
|
32
38
|
anonymbox.com
|
33
39
|
antichef.com
|
@@ -38,11 +44,13 @@ asdasd.ru
|
|
38
44
|
azmeil.tk
|
39
45
|
baxomale.ht.cx
|
40
46
|
beefmilk.com
|
47
|
+
bigprofessor.so
|
41
48
|
binkmail.com
|
42
49
|
bio-muesli.net
|
43
50
|
bobmail.info
|
44
51
|
bodhi.lawlita.com
|
45
52
|
bofthew.com
|
53
|
+
boximail.com
|
46
54
|
brefmail.com
|
47
55
|
broadbandninja.com
|
48
56
|
bsnow.net
|
@@ -50,11 +58,13 @@ bugmenot.com
|
|
50
58
|
bumpymail.com
|
51
59
|
burstmail.info
|
52
60
|
casualdx.com
|
61
|
+
cbair.com
|
53
62
|
centermail.com
|
54
63
|
centermail.net
|
55
64
|
chammy.info
|
56
65
|
chogmail.com
|
57
66
|
choicemail1.com
|
67
|
+
clrmail.com
|
58
68
|
coldemail.info
|
59
69
|
cool.fr.nf
|
60
70
|
correo.blogos.net
|
@@ -92,12 +102,14 @@ dontreg.com
|
|
92
102
|
dontsendmespam.de
|
93
103
|
drdrb.com
|
94
104
|
drdrb.net
|
105
|
+
droplar.com
|
95
106
|
dropmail.me
|
96
107
|
dump-email.info
|
97
108
|
dumpandjunk.com
|
98
109
|
dumpmail.de
|
99
110
|
dumpyemail.com
|
100
111
|
e4ward.com
|
112
|
+
eelmail.com
|
101
113
|
einrot.com
|
102
114
|
email60.com
|
103
115
|
emaildienst.de
|
@@ -143,6 +155,7 @@ fux0ringduh.com
|
|
143
155
|
garliclife.com
|
144
156
|
get1mail.com
|
145
157
|
get2mail.fr
|
158
|
+
getairmail.com
|
146
159
|
getonemail.com
|
147
160
|
getonemail.net
|
148
161
|
ghosttexter.de
|
@@ -157,8 +170,10 @@ gowikimusic.com
|
|
157
170
|
gowikinetwork.com
|
158
171
|
gowikitravel.com
|
159
172
|
gowikitv.com
|
173
|
+
grandmamail.com
|
160
174
|
great-host.in
|
161
175
|
greensloth.com
|
176
|
+
grr.la
|
162
177
|
gsrv.co.uk
|
163
178
|
guerillamail.biz
|
164
179
|
guerillamail.com
|
@@ -214,6 +229,7 @@ klzlk.com
|
|
214
229
|
koszmail.pl
|
215
230
|
kulturbetrieb.info
|
216
231
|
kurzepost.de
|
232
|
+
lackmail.net
|
217
233
|
letthemeatspam.com
|
218
234
|
lhsdv.com
|
219
235
|
lifebyfood.com
|
@@ -331,13 +347,16 @@ pjjkp.com
|
|
331
347
|
politikerclub.de
|
332
348
|
poofy.org
|
333
349
|
pookmail.com
|
350
|
+
postalmail.biz
|
334
351
|
privacy.net
|
335
352
|
proxymail.eu
|
336
353
|
prtnx.com
|
337
354
|
punkass.com
|
338
355
|
putthisinyourspamdatabase.com
|
356
|
+
pwrby.com
|
339
357
|
qq.com
|
340
358
|
quickinbox.com
|
359
|
+
rainmail.biz
|
341
360
|
rcpt.at
|
342
361
|
reallymymail.com
|
343
362
|
recode.me
|
@@ -429,6 +448,7 @@ supergreatmail.com
|
|
429
448
|
supermailer.jp
|
430
449
|
superrito.com
|
431
450
|
suremail.info
|
451
|
+
tafmail.com
|
432
452
|
tagyourself.com
|
433
453
|
teewars.org
|
434
454
|
teleworm.com
|
@@ -478,6 +498,7 @@ trashymail.com
|
|
478
498
|
trashymail.net
|
479
499
|
trbvm.com
|
480
500
|
trillianpro.com
|
501
|
+
tryalert.com
|
481
502
|
turual.com
|
482
503
|
twinmail.de
|
483
504
|
tyldd.com
|
@@ -491,6 +512,7 @@ viditag.com
|
|
491
512
|
viewcastmedia.com
|
492
513
|
viewcastmedia.net
|
493
514
|
viewcastmedia.org
|
515
|
+
walkmail.net
|
494
516
|
webm4il.info
|
495
517
|
wegwerfadresse.de
|
496
518
|
wegwerfemail.de
|
@@ -521,6 +543,7 @@ yopmail.net
|
|
521
543
|
ypmail.webarnak.fr.eu.org
|
522
544
|
yuurok.com
|
523
545
|
zehnminutenmail.de
|
546
|
+
zetmail.com
|
524
547
|
zippymail.info
|
525
548
|
zoaxe.com
|
526
549
|
zoemail.org
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'fake_email_validator'
|
7
|
-
spec.version = '0.0
|
7
|
+
spec.version = '1.0.0'
|
8
8
|
spec.authors = ['Maxim Dobryakov']
|
9
9
|
spec.email = ['maxim.dobryakov@gmail.com']
|
10
10
|
spec.summary = %q{E-Mail validator for Rails to block fake emails}
|
@@ -19,8 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
|
20
20
|
spec.add_development_dependency 'bundler', '~> 1.5'
|
21
21
|
spec.add_development_dependency 'rake', '~> 10'
|
22
|
-
spec.add_development_dependency 'minitest', '~>
|
22
|
+
spec.add_development_dependency 'minitest', '~> 5'
|
23
23
|
|
24
|
-
spec.add_runtime_dependency 'activemodel'
|
25
|
-
spec.add_runtime_dependency 'mail'
|
24
|
+
spec.add_runtime_dependency 'activemodel'
|
25
|
+
spec.add_runtime_dependency 'mail'
|
26
26
|
end
|
data/lib/fake_email_validator.rb
CHANGED
@@ -16,7 +16,9 @@ class FakeEmailValidator < ActiveModel::EachValidator
|
|
16
16
|
email = Mail::Address.new(value)
|
17
17
|
|
18
18
|
domain = email.domain.strip.downcase
|
19
|
-
|
19
|
+
second_level_domain = domain.split('.')[-2..-1].join('.')
|
20
|
+
|
21
|
+
is_fake = @fake_domains.include?(domain) || @fake_domains.include?(second_level_domain)
|
20
22
|
|
21
23
|
record.errors.add attribute, I18n.t(:fake, scope: I18N_SCOPE) if is_fake
|
22
24
|
rescue Mail::Field::ParseError
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'minitest_helper'
|
2
2
|
|
3
|
-
class TestFakeEmailValidator <
|
3
|
+
class TestFakeEmailValidator < Minitest::Test
|
4
4
|
|
5
5
|
@@user_class = Class.new do
|
6
6
|
include ActiveModel::Validations
|
@@ -28,10 +28,30 @@ class TestFakeEmailValidator < MiniTest::Unit::TestCase
|
|
28
28
|
assert_equal 'is fake domain', @user.errors[:email].first
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
31
|
+
def test_fake_email_with_third_sub_domain
|
32
|
+
@user.email = 'test@gsrv.co.uk'
|
33
|
+
|
34
|
+
assert !@user.valid?
|
35
|
+
assert_equal 'is fake domain', @user.errors[:email].first
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_fake_email_with_fake_sub_domain
|
39
|
+
@user.email = 'test@a.10mail.org'
|
40
|
+
|
41
|
+
assert !@user.valid?
|
42
|
+
assert_equal 'is fake domain', @user.errors[:email].first
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_real_email_1
|
32
46
|
@user.email = 'test@gmail.com'
|
33
47
|
|
34
48
|
assert @user.valid?
|
35
49
|
end
|
36
50
|
|
51
|
+
def test_real_email_with_third_sub_domain
|
52
|
+
@user.email = 'test@mail.co.uk'
|
53
|
+
|
54
|
+
assert @user.valid?
|
55
|
+
end
|
56
|
+
|
37
57
|
end
|
metadata
CHANGED
@@ -1,97 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fake_email_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maxim Dobryakov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.5'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10'
|
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
40
|
version: '10'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '5'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: activemodel
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
62
|
-
- - ">"
|
63
|
-
- !ruby/object:Gem::Version
|
64
|
-
version: 4.0.0
|
61
|
+
version: '0'
|
65
62
|
type: :runtime
|
66
63
|
prerelease: false
|
67
64
|
version_requirements: !ruby/object:Gem::Requirement
|
68
65
|
requirements:
|
69
|
-
- -
|
70
|
-
- !ruby/object:Gem::Version
|
71
|
-
version: '4.0'
|
72
|
-
- - ">"
|
66
|
+
- - '>='
|
73
67
|
- !ruby/object:Gem::Version
|
74
|
-
version:
|
68
|
+
version: '0'
|
75
69
|
- !ruby/object:Gem::Dependency
|
76
70
|
name: mail
|
77
71
|
requirement: !ruby/object:Gem::Requirement
|
78
72
|
requirements:
|
79
|
-
- -
|
73
|
+
- - '>='
|
80
74
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
82
|
-
- - ">"
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
version: 2.5.3
|
75
|
+
version: '0'
|
85
76
|
type: :runtime
|
86
77
|
prerelease: false
|
87
78
|
version_requirements: !ruby/object:Gem::Requirement
|
88
79
|
requirements:
|
89
|
-
- -
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '2.5'
|
92
|
-
- - ">"
|
80
|
+
- - '>='
|
93
81
|
- !ruby/object:Gem::Version
|
94
|
-
version:
|
82
|
+
version: '0'
|
95
83
|
description: E-Mail validator for Rails to block services like mailinator.com
|
96
84
|
email:
|
97
85
|
- maxim.dobryakov@gmail.com
|
@@ -99,8 +87,8 @@ executables: []
|
|
99
87
|
extensions: []
|
100
88
|
extra_rdoc_files: []
|
101
89
|
files:
|
102
|
-
-
|
103
|
-
-
|
90
|
+
- .gitignore
|
91
|
+
- .travis.yml
|
104
92
|
- Gemfile
|
105
93
|
- LICENSE.txt
|
106
94
|
- README.md
|
@@ -121,12 +109,12 @@ require_paths:
|
|
121
109
|
- lib
|
122
110
|
required_ruby_version: !ruby/object:Gem::Requirement
|
123
111
|
requirements:
|
124
|
-
- -
|
112
|
+
- - '>='
|
125
113
|
- !ruby/object:Gem::Version
|
126
114
|
version: '0'
|
127
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
116
|
requirements:
|
129
|
-
- -
|
117
|
+
- - '>='
|
130
118
|
- !ruby/object:Gem::Version
|
131
119
|
version: '0'
|
132
120
|
requirements: []
|