fake_email_validator 0.0.5 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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 [![Build Status](https://travis-ci.org/maxd/fake_email_validator.png?branch=master)](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: []
|