spam_email 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,558 @@
1
+ module SpamEmail
2
+ BLACKLIST = { "0815.ru" => true,
3
+ "10minutemail.com" => true,
4
+ "10x9.com" => true,
5
+ "126.com" => true,
6
+ "1337-crew.to" => true,
7
+ "139.com" => true,
8
+ "163.com" => true,
9
+ "188.com" => true,
10
+ "1pad.de" => true,
11
+ "20minutemail.com" => true,
12
+ "21cn.com" => true,
13
+ "21cn.net" => true,
14
+ "2prong.com" => true,
15
+ "30minutemail.com" => true,
16
+ "30minutenmail.eu" => true,
17
+ "30minutesmail.com" => true,
18
+ "3d-painting.com" => true,
19
+ "4warding.com" => true,
20
+ "60-minuten-mail.de" => true,
21
+ "6ip.us" => true,
22
+ "7tags.com" => true,
23
+ "ahsa.ws" => true,
24
+ "aichyna.com" => true,
25
+ "ajman.ws" => true,
26
+ "ama-trade.de" => true,
27
+ "ama-trans.de" => true,
28
+ "anhorn.de" => true,
29
+ "ano.to" => true,
30
+ "anonmail.de" => true,
31
+ "anonmails.de" => true,
32
+ "anonymbox.com" => true,
33
+ "anonymousmail.de" => true,
34
+ "anonymousspeech.com" => true,
35
+ "antichef.net" => true,
36
+ "antireg.ru" => true,
37
+ "antispam.de" => true,
38
+ "antispammail.de" => true,
39
+ "armyspy.com" => true,
40
+ "au.ru" => true,
41
+ "autorambler.ru" => true,
42
+ "baseoftrash.de" => true,
43
+ "beefmilk.com" => true,
44
+ "bigmir.net" => true,
45
+ "binkmail.com" => true,
46
+ "bio-muesli.net" => true,
47
+ "bk.ru" => true,
48
+ "bobmail.info" => true,
49
+ "bodhi.lawlita.com" => true,
50
+ "bofthew.com" => true,
51
+ "bookee.com" => true,
52
+ "bootybay.de" => true,
53
+ "breakthru.com" => true,
54
+ "brefmail.com" => true,
55
+ "broadbandninja.com" => true,
56
+ "bsnow.net" => true,
57
+ "bspamfree.org" => true,
58
+ "bugmenot.com" => true,
59
+ "bund.us" => true,
60
+ "bymail.org" => true,
61
+ "byom.de" => true,
62
+ "card.zp.ua" => true,
63
+ "casema.org" => true,
64
+ "cash.com" => true,
65
+ "cashette.com" => true,
66
+ "ccatv.org" => true,
67
+ "cellurl.com" => true,
68
+ "centermail.com" => true,
69
+ "centermail.net" => true,
70
+ "chammy.info" => true,
71
+ "cheatmail.de" => true,
72
+ "chogmail.com" => true,
73
+ "consumerriot.com" => true,
74
+ "cool.fr.nf" => true,
75
+ "correo10.com" => true,
76
+ "courriel.fr.nf" => true,
77
+ "courrieltemporaire.com" => true,
78
+ "crapmail.org" => true,
79
+ "cuvox.de" => true,
80
+ "dayrep.com" => true,
81
+ "deadaddress.com" => true,
82
+ "delikkt.de" => true,
83
+ "despam.it" => true,
84
+ "despammed.com" => true,
85
+ "devnullmail.com" => true,
86
+ "dingbone.com" => true,
87
+ "disposemail.com" => true,
88
+ "dispostable.com" => true,
89
+ "docmail.cz" => true,
90
+ "dodgeit.com" => true,
91
+ "dodgit.com" => true,
92
+ "dontassrape.us" => true,
93
+ "dontreg.com" => true,
94
+ "dontsendmespam.de" => true,
95
+ "drdrb.com" => true,
96
+ "dump-email.info" => true,
97
+ "dumpyemail.com" => true,
98
+ "duskmail.com" => true,
99
+ "dyndns.org" => true,
100
+ "e4ward.com" => true,
101
+ "easy.com" => true,
102
+ "easytrashmail.com" => true,
103
+ "einmalmail.de" => true,
104
+ "einrot.com" => true,
105
+ "eintagsmail.de" => true,
106
+ "email60.com" => true,
107
+ "emailgo.de" => true,
108
+ "emailias.com" => true,
109
+ "emaillime.com" => true,
110
+ "emailmiser.com" => true,
111
+ "emailsensei.com" => true,
112
+ "emailtemporanea.com" => true,
113
+ "emailtemporanea.net" => true,
114
+ "emailtemporario.com.br" => true,
115
+ "emailwarden.com" => true,
116
+ "emailx.at.hm" => true,
117
+ "epost4you.de" => true,
118
+ "e-postkasten.com" => true,
119
+ "e-postkasten.eu" => true,
120
+ "e-postkasten.info" => true,
121
+ "ero-tube.org" => true,
122
+ "europe.com" => true,
123
+ "express.net.ua" => true,
124
+ "eyepaste.com" => true,
125
+ "facebook.com" => true,
126
+ "fakedemail.com" => true,
127
+ "fakeinbox.com" => true,
128
+ "fakeinbox.net" => true,
129
+ "fakeinbox.org" => true,
130
+ "fakeinformation.com" => true,
131
+ "fansworldwide.de" => true,
132
+ "faza.ru" => true,
133
+ "filzmail.com" => true,
134
+ "fivemail.de" => true,
135
+ "fleckens.hu" => true,
136
+ "flitafir.de" => true,
137
+ "fornow.eu" => true,
138
+ "foxmail.com" => true,
139
+ "frapmail.com" => true,
140
+ "freemail.ms" => true,
141
+ "freespambox.com" => true,
142
+ "fromru.com" => true,
143
+ "fromru.ru" => true,
144
+ "front.ru" => true,
145
+ "fudgerub.com" => true,
146
+ "fujairah.us" => true,
147
+ "fujairah.ws" => true,
148
+ "fyii.de" => true,
149
+ "garliclife.com" => true,
150
+ "gehensiemirnichtaufdensack.de" => true,
151
+ "geschenkt.biz" => true,
152
+ "get2mail.fr" => true,
153
+ "getairmail.com" => true,
154
+ "getmails.eu" => true,
155
+ "getonemail.com" => true,
156
+ "giantmail.de" => true,
157
+ "gishpuppy.com" => true,
158
+ "go.ru" => true,
159
+ "golfilla.info" => true,
160
+ "grr.la" => true,
161
+ "guerrillamail.biz" => true,
162
+ "guerrillamail.com" => true,
163
+ "guerrillamail.de" => true,
164
+ "guerrillamail.info" => true,
165
+ "guerrillamail.net" => true,
166
+ "guerrillamail.org" => true,
167
+ "guerrillamailblock.com" => true,
168
+ "gustr.com" => true,
169
+ "hacker.tl" => true,
170
+ "hat-geld.de" => true,
171
+ "hebron.tv" => true,
172
+ "hidemail.de" => true,
173
+ "hidemyass.com" => true,
174
+ "hidzz.com" => true,
175
+ "hinet.net" => true,
176
+ "hmamail.com" => true,
177
+ "homedns.org" => true,
178
+ "hotbox.ru" => true,
179
+ "hotmail.ru" => true,
180
+ "hush.ai" => true,
181
+ "hush.com" => true,
182
+ "hushmail.com" => true,
183
+ "hushmail.me" => true,
184
+ "id.ru" => true,
185
+ "ieh-mail.de" => true,
186
+ "iespana.es" => true,
187
+ "imails.info" => true,
188
+ "inbox.ru" => true,
189
+ "inbox.si" => true,
190
+ "inboxclean.com" => true,
191
+ "infocom.zp.ua" => true,
192
+ "instant-mail.de" => true,
193
+ "ip6.li" => true,
194
+ "irbid.ws" => true,
195
+ "irish2me.com" => true,
196
+ "islammail.net" => true,
197
+ "jadida.org" => true,
198
+ "jetable.com" => true,
199
+ "jetable.fr.nf" => true,
200
+ "jetable.net" => true,
201
+ "jetable.org" => true,
202
+ "jnxjn.com" => true,
203
+ "jourrapide.com" => true,
204
+ "kaktusmail.de" => true,
205
+ "kasmail.com" => true,
206
+ "keepmymail.com" => true,
207
+ "klzlk.com" => true,
208
+ "kostenlosemailadresse.de" => true,
209
+ "koszmail.pl" => true,
210
+ "kuh.mu" => true,
211
+ "kurzepost.de" => true,
212
+ "kuwaiti.tv" => true,
213
+ "lags.us" => true,
214
+ "land.ru" => true,
215
+ "lawlita.com" => true,
216
+ "lenta.ru" => true,
217
+ "less.b0ne.com" => true,
218
+ "letthemeatspam.com" => true,
219
+ "lhsdv.com" => true,
220
+ "lifebyfood.com" => true,
221
+ "link2mail.net" => true,
222
+ "list.ru" => true,
223
+ "localhost.net" => true,
224
+ "localhost.org" => true,
225
+ "lolfreak.net" => true,
226
+ "lookugly.com" => true,
227
+ "lr78.com" => true,
228
+ "lubnan.ws" => true,
229
+ "m21.cc" => true,
230
+ "mail.by" => true,
231
+ "mail.ru" => true,
232
+ "mail.zp.ua" => true,
233
+ "mail15.com" => true,
234
+ "mail1a.de" => true,
235
+ "mail21.cc" => true,
236
+ "mail333.com" => true,
237
+ "mail4trash.com" => true,
238
+ "mailbiz.biz" => true,
239
+ "mailcatch.com" => true,
240
+ "mailde.de" => true,
241
+ "mailde.info" => true,
242
+ "maildrop.cc" => true,
243
+ "maileimer.de" => true,
244
+ "mailexpire.com" => true,
245
+ "mailfish.de" => true,
246
+ "mailforspam.com" => true,
247
+ "mailgate.ru" => true,
248
+ "mailin8r.com" => true,
249
+ "mailinater.com" => true,
250
+ "mailinator.com" => true,
251
+ "mailinator.net" => true,
252
+ "mailme.lv" => true,
253
+ "mailme24.com" => true,
254
+ "mailmetrash.com" => true,
255
+ "mailmoat.com" => true,
256
+ "mailms.com" => true,
257
+ "mailnator.com" => true,
258
+ "mailnesia.com" => true,
259
+ "mailnull.com" => true,
260
+ "mailorg.org" => true,
261
+ "mailscrap.com" => true,
262
+ "mailshell.com" => true,
263
+ "mail-temporaire.fr" => true,
264
+ "mailtome.de" => true,
265
+ "mailtothis.com" => true,
266
+ "mailtrash.net" => true,
267
+ "mailtv.net" => true,
268
+ "mailtv.tv" => true,
269
+ "makemetheking.com" => true,
270
+ "malahov.de" => true,
271
+ "mansoura.tv" => true,
272
+ "marsmail.de" => true,
273
+ "marsmail.eu" => true,
274
+ "mascara.ws" => true,
275
+ "masterhost.ru" => true,
276
+ "mega.yt" => true,
277
+ "mega.zik.dj" => true,
278
+ "meltmail.com" => true,
279
+ "messagebeamer.de" => true,
280
+ "mezimages.net" => true,
281
+ "ministry-of-silly-walks.de" => true,
282
+ "mintemail.com" => true,
283
+ "misterpinball.de" => true,
284
+ "moburl.com" => true,
285
+ "moncourrier.fr.nf" => true,
286
+ "monemail.fr.nf" => true,
287
+ "monmail.fr.nf" => true,
288
+ "monumentmail.com" => true,
289
+ "moyareklama.ru" => true,
290
+ "mt2009.com" => true,
291
+ "mt2014.com" => true,
292
+ "muscat.ws" => true,
293
+ "my10minutemail.com" => true,
294
+ "mycard.net.ua" => true,
295
+ "mycleaninbox.net" => true,
296
+ "mypartyclip.de" => true,
297
+ "myphantomemail.com" => true,
298
+ "myrambler.ru" => true,
299
+ "mysamp.de" => true,
300
+ "mytempemail.com" => true,
301
+ "mytempmail.com" => true,
302
+ "mytrashmail.com" => true,
303
+ "nabeul.info" => true,
304
+ "nabuma.com" => true,
305
+ "nepwk.com" => true,
306
+ "nervmich.net" => true,
307
+ "nervtmich.net" => true,
308
+ "netmails.net" => true,
309
+ "neverbox.com" => true,
310
+ "newmail.ru" => true,
311
+ "nextmail.ru" => true,
312
+ "nightmail.ru" => true,
313
+ "nlogn.de" => true,
314
+ "nm.ru" => true,
315
+ "nodns.org" => true,
316
+ "nomail.pw" => true,
317
+ "nomail.xl.cx" => true,
318
+ "nomail2me.com" => true,
319
+ "no-more-spam.com" => true,
320
+ "nomorespamemails.com" => true,
321
+ "no-spam.hu" => true,
322
+ "no-spam.ws" => true,
323
+ "nospam.ze.tc" => true,
324
+ "nospam4.us" => true,
325
+ "nospammail.net" => true,
326
+ "notmailinator.com" => true,
327
+ "notmyemail.com" => true,
328
+ "notsharingmy.info" => true,
329
+ "nowmymail.com" => true,
330
+ "nurfuerspam.de" => true,
331
+ "objectmail.com" => true,
332
+ "obobbo.com" => true,
333
+ "odnorazovoe.ru" => true,
334
+ "ok.ru" => true,
335
+ "omail.pro" => true,
336
+ "omani.ws" => true,
337
+ "one.lt" => true,
338
+ "oneoffemail.com" => true,
339
+ "onewaymail.com" => true,
340
+ "onlatedotcom.info" => true,
341
+ "online.ms" => true,
342
+ "opayq.com" => true,
343
+ "otherinbox.com" => true,
344
+ "oujda.biz" => true,
345
+ "ovpn.to" => true,
346
+ "owlpic.com" => true,
347
+ "pakistani.ws" => true,
348
+ "palmyra.ws" => true,
349
+ "pisem.net" => true,
350
+ "pjjkp.com" => true,
351
+ "pleasantphoto.com" => true,
352
+ "plexolan.de" => true,
353
+ "pochta.ru" => true,
354
+ "pochtamt.ru" => true,
355
+ "politikerclub.de" => true,
356
+ "pop3.ru" => true,
357
+ "porn.com" => true,
358
+ "pornoroxx.net" => true,
359
+ "privacy.net" => true,
360
+ "privacybox.net" => true,
361
+ "privatdemail.net" => true,
362
+ "proxymail.eu" => true,
363
+ "prtnx.com" => true,
364
+ "punkass.com" => true,
365
+ "putthisinyourspamdatabase.com" => true,
366
+ "qlfg.com" => true,
367
+ "qq.com" => true,
368
+ "quickinbox.com" => true,
369
+ "r0.ru" => true,
370
+ "rambler.ru" => true,
371
+ "rbcmail.ru" => true,
372
+ "rcpt.at" => true,
373
+ "realtyalerts.ca" => true,
374
+ "recode.me" => true,
375
+ "rfc822.org" => true,
376
+ "rhyta.com" => true,
377
+ "rmqkr.net" => true,
378
+ "ro.ru" => true,
379
+ "rtrtr.com" => true,
380
+ "ru.ru" => true,
381
+ "s0ny.net" => true,
382
+ "safat.biz" => true,
383
+ "safat.ws" => true,
384
+ "safe-mail.net" => true,
385
+ "safersignup.com" => true,
386
+ "safersignup.de" => true,
387
+ "safetymail.info" => true,
388
+ "safetypost.de" => true,
389
+ "sapya.com" => true,
390
+ "saynotospams.com" => true,
391
+ "schafmail.de" => true,
392
+ "schrott-email.de" => true,
393
+ "secmail.in" => true,
394
+ "secretemail.de" => true,
395
+ "sector2.org" => true,
396
+ "secure-email.org" => true,
397
+ "secure-mail.biz" => true,
398
+ "secure-mail.cc" => true,
399
+ "sendmail.ru" => true,
400
+ "senseless-entertainment.com" => true,
401
+ "sfax.ws" => true,
402
+ "sharklasers.com" => true,
403
+ "shieldemail.com" => true,
404
+ "shitmail.me" => true,
405
+ "shitmail.org" => true,
406
+ "sibmail.com" => true,
407
+ "sina.com" => true,
408
+ "sinnlos-mail.de" => true,
409
+ "skeefmail.com" => true,
410
+ "skim.com" => true,
411
+ "smashmail.de" => true,
412
+ "smeh.info" => true,
413
+ "smellfear.com" => true,
414
+ "smtp.ru" => true,
415
+ "sneakemail.com" => true,
416
+ "sneakmail.de" => true,
417
+ "snkmail.com" => true,
418
+ "sofimail.com" => true,
419
+ "sogetthis.com" => true,
420
+ "soodonims.com" => true,
421
+ "spam4.me" => true,
422
+ "spamail.de" => true,
423
+ "spamavert.com" => true,
424
+ "spamavert.no" => true,
425
+ "spambob.net" => true,
426
+ "spambog.ru" => true,
427
+ "spambooger.com" => true,
428
+ "spambox.us" => true,
429
+ "spamcorptastic.com" => true,
430
+ "spamday.com" => true,
431
+ "spamex.com" => true,
432
+ "spamfence.net" => true,
433
+ "spamfoodie.com" => true,
434
+ "spamfree.eu" => true,
435
+ "spamfree24.com" => true,
436
+ "spamfree24.de" => true,
437
+ "spamfree24.org" => true,
438
+ "spamgourmet.com" => true,
439
+ "spamherelots.com" => true,
440
+ "spamhereplease.com" => true,
441
+ "spamify.com" => true,
442
+ "spaml.com" => true,
443
+ "spaml.de" => true,
444
+ "spammotel.com" => true,
445
+ "spamobox.com" => true,
446
+ "spamscams.net" => true,
447
+ "spamslicer.com" => true,
448
+ "spamspot.com" => true,
449
+ "spamthis.co.uk" => true,
450
+ "spamx.ru" => true,
451
+ "speed.1s.fr" => true,
452
+ "spoofmail.de" => true,
453
+ "sry.li" => true,
454
+ "super-auswahl.de" => true,
455
+ "supergreatmail.com" => true,
456
+ "superrito.com" => true,
457
+ "suremail.info" => true,
458
+ "tagyourself.com" => true,
459
+ "teewars.org" => true,
460
+ "teleworm.us" => true,
461
+ "tempail.com" => true,
462
+ "tempemail.co.za" => true,
463
+ "tempe-mail.com" => true,
464
+ "tempemail.net" => true,
465
+ "tempinbox.co.uk" => true,
466
+ "tempinbox.com" => true,
467
+ "temp-mail.com" => true,
468
+ "tempmail.de" => true,
469
+ "tempmail.eu" => true,
470
+ "tempmail.info" => true,
471
+ "tempmail.org" => true,
472
+ "temp-mail.org" => true,
473
+ "temp-mail.ru" => true,
474
+ "tempmaildemo.com" => true,
475
+ "tempmailer.com" => true,
476
+ "tempmailer.de" => true,
477
+ "tempomail.fr" => true,
478
+ "temporarioemail.com.br" => true,
479
+ "temporaryemail.net" => true,
480
+ "temporaryforwarding.com" => true,
481
+ "temporaryinbox.com" => true,
482
+ "temporarymailaddress.com" => true,
483
+ "thankyou2010.com" => true,
484
+ "thc.st" => true,
485
+ "theanonymousemail.com" => true,
486
+ "thecannabishunter.com" => true,
487
+ "thisisnotmyrealemail.com" => true,
488
+ "thismail.net" => true,
489
+ "throwawayaddress.com" => true,
490
+ "tittbit.in" => true,
491
+ "tmailinator.com" => true,
492
+ "tom.com" => true,
493
+ "topranklist.de" => true,
494
+ "tormail.org" => true,
495
+ "tradedoubling.co.uk" => true,
496
+ "tradermail.info" => true,
497
+ "trash.name" => true,
498
+ "trash2009.com" => true,
499
+ "trashdevil.com" => true,
500
+ "trashemail.de" => true,
501
+ "trashemails.de" => true,
502
+ "trashmail.at" => true,
503
+ "trash-mail.at" => true,
504
+ "trash-mail.com" => true,
505
+ "trashmail.de" => true,
506
+ "trash-mail.de" => true,
507
+ "trashmail.me" => true,
508
+ "trashmail.net" => true,
509
+ "trashmail.org" => true,
510
+ "trashymail.com" => true,
511
+ "trialmail.de" => true,
512
+ "trillianpro.com" => true,
513
+ "tut.by" => true,
514
+ "twinmail.de" => true,
515
+ "tyldd.com" => true,
516
+ "ukr.net" => true,
517
+ "us.af" => true,
518
+ "users.1go.dk" => true,
519
+ "veryrealemail.com" => true,
520
+ "vidchart.com" => true,
521
+ "vpn.st" => true,
522
+ "vpnsmail.me" => true,
523
+ "vsimcard.com" => true,
524
+ "w00ttech.com" => true,
525
+ "wasteland.rfc822.org" => true,
526
+ "wegwerfadresse.de" => true,
527
+ "wegwerfemail.com" => true,
528
+ "wegwerfemail.de" => true,
529
+ "weg-werf-email.de" => true,
530
+ "wegwerf-emails.de" => true,
531
+ "wegwerfmail.de" => true,
532
+ "wegwerfmail.net" => true,
533
+ "wegwerfmail.org" => true,
534
+ "wh4f.org" => true,
535
+ "whyspam.me" => true,
536
+ "willhackforfood.biz" => true,
537
+ "willselfdestruct.com" => true,
538
+ "wreckedmail.net" => true,
539
+ "wreckedmail.org" => true,
540
+ "wuzupmail.net" => true,
541
+ "x3n.in" => true,
542
+ "xents.com" => true,
543
+ "xyzfree.net" => true,
544
+ "yandex.ru" => true,
545
+ "yeah.net" => true,
546
+ "yopmail.com" => true,
547
+ "yopmail.fr" => true,
548
+ "yopmail.net" => true,
549
+ "yourdomain.com" => true,
550
+ "yufz.com" => true,
551
+ "yuurok.com" => true,
552
+ "z1p.biz" => true,
553
+ "zehnminuten.de" => true,
554
+ "zehnminutenmail.de" => true,
555
+ "zippymail.info" => true,
556
+ "zmail.ru" => true,
557
+ "zoemail.net" => true }
558
+ end
@@ -0,0 +1,36 @@
1
+ require 'ruby-progressbar'
2
+
3
+ module SpamEmail
4
+ class ListCompiler
5
+ # this method takes the list from data/provider_list.txt, resolves all mx
6
+ # entries and builds the blacklist-array
7
+ def self.compile_list
8
+ progress_bar = ProgressBar.create(total: File.size("data/provider_list.txt"), format: '%e |%b>>%i| %p%% %t')
9
+
10
+ resolving = []
11
+ file = File.open("data/provider_list.txt")
12
+ file.each_line do |domain|
13
+ domain.strip!
14
+ domain.downcase!
15
+ next if domain.empty?
16
+
17
+ mx = []
18
+ Resolv::DNS.open do |dns|
19
+ mx.concat dns.getresources(domain, Resolv::DNS::Resource::IN::MX)
20
+ end
21
+
22
+ if mx.any?
23
+ resolving << domain
24
+ end
25
+ progress_bar.progress = file.tell
26
+ end
27
+
28
+ hash_elements = resolving.collect { |v| "\"#{v}\" => true" }
29
+
30
+ dest_file = File.open("lib/spam_email/blacklist.rb", "w")
31
+ dest_file.write("module SpamEmail\n BLACKLIST = { ")
32
+ dest_file.write(hash_elements.join(",\n "))
33
+ dest_file.write(" }\nend")
34
+ end
35
+ end
36
+ end
@@ -1,3 +1,3 @@
1
1
  module SpamEmail
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/spam_email.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require "spam_email/version"
2
- require "spam_email/domains"
2
+ require "spam_email/blacklist"
3
3
  require 'active_model'
4
4
  require 'active_model/validations'
5
5
  require 'mail'
@@ -11,10 +11,14 @@ class SpamEmailValidator < ActiveModel::EachValidator
11
11
  begin
12
12
  m = Mail::Address.new(value)
13
13
  return if m.domain.nil?
14
- r = SpamEmail::BLACKLIST.include?(m.domain.downcase)
15
- rescue Exception => e
16
- r = false
14
+ domain = m.domain.downcase
15
+
16
+ if SpamEmail::BLACKLIST[domain]
17
+ message = (options[:message] || I18n.t(:blacklisted, scope: "spam_email.validations.email"))
18
+ record.errors[attribute] << message
19
+ end
20
+ rescue RuntimeError
21
+ return
17
22
  end
18
- record.errors[attribute] << (options[:message] || I18n.t(:blacklisted, scope: "spam_email.validations.email")) if r
19
23
  end
20
- end
24
+ end
data/spam_email.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib"]
20
20
 
21
21
  spec.add_development_dependency "rspec"
22
+ spec.add_development_dependency "ruby-progressbar"
22
23
  spec.add_development_dependency "rake"
23
24
  spec.add_runtime_dependency "mail"
24
25
  spec.add_runtime_dependency "activemodel"
@@ -9,28 +9,38 @@ describe SpamEmailValidator do
9
9
 
10
10
  shared_examples_for "Validating emails" do
11
11
  before { I18n.locale = locale }
12
+ let(:invalid_domain) { "10minutemail.com" }
12
13
 
13
14
  describe "#validate_each" do
14
15
  subject { record_class.new }
15
16
  before { subject.email = email }
16
17
  before { subject.valid? }
17
18
 
18
- context "email domain is listed in in blacklisted domains" do
19
- let(:email) { 'johndoe@12minutemail.com' }
20
- its(:valid?) { should be_false }
21
- specify { subject.errors[:email].should == errors }
19
+ context "when email domain is listed in in blacklisted domains" do
20
+ let(:email) { "johndoe@#{invalid_domain}" }
21
+
22
+ it "should not be valid" do
23
+ subject.should_not be_valid
24
+ subject.errors[:email].should == errors
25
+ end
22
26
  end
23
27
 
24
- context "upcase provided email domain is listed in in blacklisted domains" do
25
- let(:email) { 'johndoe@12MINUTEMAIL.com' }
26
- its(:valid?) { should be_false }
27
- specify { subject.errors[:email].should == errors }
28
+ context "when upcase provided email domain is listed in in blacklisted domains" do
29
+ let(:email) { "johndoe@#{invalid_domain.upcase}" }
30
+
31
+ it "should not be valid" do
32
+ subject.should_not be_valid
33
+ subject.errors[:email].should == errors
34
+ end
28
35
  end
29
36
 
30
- context "email domain is not listed in in blacklisted domains" do
37
+ context "when email domain is not listed in in blacklisted domains" do
31
38
  let(:email) { 'johndoe@lima-city.de' }
32
- its(:valid?) { should be_true }
33
- specify { subject.errors[:email].should be_empty }
39
+
40
+ it "should be valid" do
41
+ subject.should be_valid
42
+ subject.errors[:email].should be_empty
43
+ end
34
44
  end
35
45
  end
36
46
  end
@@ -54,4 +64,4 @@ describe SpamEmailValidator do
54
64
  let!(:errors) { [ "est un fournisseur e-mail interdit" ] }
55
65
  it_should_behave_like "Validating emails"
56
66
  end
57
- end
67
+ end