valid_email2 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a5b67a49b88b65e4dcd7c8ad0c0210c998f863df
4
+ data.tar.gz: ba27151ed1ea3122408e0e2f8873d126739788f7
5
+ SHA512:
6
+ metadata.gz: 7ae2b937fa2b3fa3d735d4da25f33dbdddfb465e41188605a9f4106e920d56f50930eb7fe95cf5e172de8aa23b1dcaa4600511a90ee5a4e3daf9c5f29631d049
7
+ data.tar.gz: 4ba1cde48caa146d4516ec5145d57fb18bf2ca735b12bfc6b3663ef1e246a9c9f658b5cd89c248d63afb29d03e57ca587c5be28fd915210aca78055bff6722d5
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in valid_email2.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Micke Lisinge
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # ValidEmail2
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'valid_email2'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install valid_email2
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ desc "Run specs"
5
+ RSpec::Core::RakeTask.new do |t|
6
+ t.pattern = "spec/**/*_spec.rb"
7
+ end
8
+
9
+ task :default => [:spec]
10
+ task :build => [:spec]
@@ -0,0 +1,491 @@
1
+ - 0-mail.com
2
+ - 0815.ru
3
+ - 0clickemail.com
4
+ - 0wnd.net
5
+ - 0wnd.org
6
+ - 10minutemail.co.za
7
+ - 10minutemail.com
8
+ - 10minutemail.net
9
+ - 12minutemail.com
10
+ - 12minutemail.net
11
+ - 20minutemail.com
12
+ - 2prong.com
13
+ - 30minutemail.com
14
+ - 3d-painting.com
15
+ - 4warding.com
16
+ - 4warding.net
17
+ - 4warding.org
18
+ - 60minutemail.com
19
+ - 675hosting.com
20
+ - 675hosting.net
21
+ - 675hosting.org
22
+ - 6url.com
23
+ - 75hosting.com
24
+ - 75hosting.net
25
+ - 75hosting.org
26
+ - 7tags.com
27
+ - 9ox.net
28
+ - a-bc.net
29
+ - a.vztc.com
30
+ - afrobacon.com
31
+ - ajaxapp.net
32
+ - amilegit.com
33
+ - amiri.net
34
+ - amiriindustries.com
35
+ - anonbox.net
36
+ - anonymbox.com
37
+ - antichef.com
38
+ - antichef.net
39
+ - antispam.de
40
+ - baxomale.ht.cx
41
+ - beefmilk.com
42
+ - binkmail.com
43
+ - bio-muesli.net
44
+ - bobmail.info
45
+ - bodhi.lawlita.com
46
+ - bofthew.com
47
+ - brefmail.com
48
+ - broadbandninja.com
49
+ - bsnow.net
50
+ - bugmenot.com
51
+ - bumpymail.com
52
+ - casualdx.com
53
+ - cellurl.com
54
+ - centermail.com
55
+ - centermail.net
56
+ - chogmail.com
57
+ - choicemail1.com
58
+ - consumerriot.com
59
+ - cool.fr.nf
60
+ - correo.blogos.net
61
+ - cosmorph.com
62
+ - courriel.fr.nf
63
+ - courrieltemporaire.com
64
+ - cubiclink.com
65
+ - curryworld.de
66
+ - cust.in
67
+ - dacoolest.com
68
+ - dandikmail.com
69
+ - dayrep.com
70
+ - deadaddress.com
71
+ - deadspam.com
72
+ - despam.it
73
+ - despammed.com
74
+ - devnullmail.com
75
+ - dfgh.net
76
+ - digitalsanctuary.com
77
+ - discardmail.com
78
+ - discardmail.de
79
+ - disposableaddress.com
80
+ - disposableinbox.com
81
+ - disposeamail.com
82
+ - disposemail.com
83
+ - dispostable.com
84
+ - dm.w3internet.co.ukexample.com
85
+ - dodgeit.com
86
+ - dodgit.com
87
+ - dodgit.org
88
+ - donemail.ru
89
+ - dontreg.com
90
+ - dontsendmespam.de
91
+ - dump-email.info
92
+ - dumpandjunk.com
93
+ - dumpmail.de
94
+ - dumpyemail.com
95
+ - e4ward.com
96
+ - email60.com
97
+ - emaildienst.de
98
+ - emailias.com
99
+ - emailigo.de
100
+ - emailinfive.com
101
+ - emailmiser.com
102
+ - emailsensei.com
103
+ - emailtemporario.com.br
104
+ - emailto.de
105
+ - emailwarden.com
106
+ - emailx.at.hm
107
+ - emailxfer.com
108
+ - emz.net
109
+ - enterto.com
110
+ - ephemail.net
111
+ - etranquil.com
112
+ - etranquil.net
113
+ - etranquil.org
114
+ - explodemail.com
115
+ - fakeinbox.com
116
+ - fakeinformation.com
117
+ - fastacura.com
118
+ - fastchevy.com
119
+ - fastchrysler.com
120
+ - fastkawasaki.com
121
+ - fastmazda.com
122
+ - fastmitsubishi.com
123
+ - fastnissan.com
124
+ - fastsubaru.com
125
+ - fastsuzuki.com
126
+ - fasttoyota.com
127
+ - fastyamaha.com
128
+ - filzmail.com
129
+ - fizmail.com
130
+ - fr33mail.info
131
+ - frapmail.com
132
+ - front14.org
133
+ - fux0ringduh.com
134
+ - garliclife.com
135
+ - get1mail.com
136
+ - get2mail.fr
137
+ - getonemail.com
138
+ - getonemail.net
139
+ - ghosttexter.de
140
+ - girlsundertheinfluence.com
141
+ - gishpuppy.com
142
+ - gowikibooks.com
143
+ - gowikicampus.com
144
+ - gowikicars.com
145
+ - gowikifilms.com
146
+ - gowikigames.com
147
+ - gowikimusic.com
148
+ - gowikinetwork.com
149
+ - gowikitravel.com
150
+ - gowikitv.com
151
+ - great-host.in
152
+ - greensloth.com
153
+ - gsrv.co.uk
154
+ - guerillamail.biz
155
+ - guerillamail.com
156
+ - guerillamail.net
157
+ - guerillamail.org
158
+ - guerrillamail.biz
159
+ - guerrillamail.com
160
+ - guerrillamail.de
161
+ - guerrillamail.net
162
+ - guerrillamail.org
163
+ - guerrillamailblock.com
164
+ - h.mintemail.com
165
+ - h8s.org
166
+ - haltospam.com
167
+ - hatespam.org
168
+ - hidemail.de
169
+ - hochsitze.com
170
+ - hotpop.com
171
+ - hulapla.de
172
+ - ieatspam.eu
173
+ - ieatspam.info
174
+ - ihateyoualot.info
175
+ - iheartspam.org
176
+ - imails.info
177
+ - inboxclean.com
178
+ - inboxclean.org
179
+ - incognitomail.com
180
+ - incognitomail.net
181
+ - incognitomail.org
182
+ - insorg-mail.info
183
+ - ipoo.org
184
+ - irish2me.com
185
+ - iwi.net
186
+ - jetable.com
187
+ - jetable.fr.nf
188
+ - jetable.net
189
+ - jetable.org
190
+ - jnxjn.com
191
+ - junk1e.com
192
+ - kasmail.com
193
+ - kaspop.com
194
+ - keepmymail.com
195
+ - killmail.com
196
+ - killmail.net
197
+ - kir.ch.tc
198
+ - klassmaster.com
199
+ - klassmaster.net
200
+ - klzlk.com
201
+ - kulturbetrieb.info
202
+ - kurzepost.de
203
+ - letthemeatspam.com
204
+ - lhsdv.com
205
+ - lifebyfood.com
206
+ - link2mail.net
207
+ - litedrop.com
208
+ - lol.ovpn.to
209
+ - lookugly.com
210
+ - lopl.co.cc
211
+ - lortemail.dk
212
+ - lr78.com
213
+ - m4ilweb.info
214
+ - maboard.com
215
+ - mail-temporaire.fr
216
+ - mail.by
217
+ - mail.mezimages.net
218
+ - mail2rss.org
219
+ - mail333.com
220
+ - mail4trash.com
221
+ - mailbidon.com
222
+ - mailblocks.com
223
+ - mailcatch.com
224
+ - maileater.com
225
+ - mailexpire.com
226
+ - mailfreeonline.com
227
+ - mailin8r.com
228
+ - mailinater.com
229
+ - mailinator.com
230
+ - mailinator.net
231
+ - mailinator2.com
232
+ - mailincubator.com
233
+ - mailme.ir
234
+ - mailme.lv
235
+ - mailmetrash.com
236
+ - mailmoat.com
237
+ - mailnator.com
238
+ - mailnesia.com
239
+ - mailnull.com
240
+ - mailshell.com
241
+ - mailsiphon.com
242
+ - mailslite.com
243
+ - mailzilla.com
244
+ - mailzilla.org
245
+ - mbx.cc
246
+ - mega.zik.dj
247
+ - meinspamschutz.de
248
+ - meltmail.com
249
+ - messagebeamer.de
250
+ - mierdamail.com
251
+ - mintemail.com
252
+ - moburl.com
253
+ - moncourrier.fr.nf
254
+ - monemail.fr.nf
255
+ - monmail.fr.nf
256
+ - msa.minsmail.com
257
+ - msb.minsmail.com
258
+ - mt2009.com
259
+ - mx0.wwwnew.eu
260
+ - mycleaninbox.net
261
+ - mypartyclip.de
262
+ - myphantomemail.com
263
+ - myspaceinc.com
264
+ - myspaceinc.net
265
+ - myspaceinc.org
266
+ - myspacepimpedup.com
267
+ - myspamless.com
268
+ - mytrashmail.com
269
+ - neomailbox.com
270
+ - nepwk.com
271
+ - nervmich.net
272
+ - nervtmich.net
273
+ - netmails.com
274
+ - netmails.net
275
+ - netzidiot.de
276
+ - neverbox.com
277
+ - no-spam.ws
278
+ - nobulk.com
279
+ - noclickemail.com
280
+ - nogmailspam.info
281
+ - nomail.xl.cx
282
+ - nomail2me.com
283
+ - nomorespamemails.com
284
+ - nospam.ze.tc
285
+ - nospam4.us
286
+ - nospamfor.us
287
+ - nospamthanks.info
288
+ - notmailinator.com
289
+ - nowmymail.com
290
+ - nurfuerspam.de
291
+ - nus.edu.sg
292
+ - nwldx.com
293
+ - objectmail.com
294
+ - obobbo.com
295
+ - oneoffemail.com
296
+ - onewaymail.com
297
+ - online.ms
298
+ - oopi.org
299
+ - ordinaryamerican.net
300
+ - otherinbox.com
301
+ - ourklips.com
302
+ - outlawspam.com
303
+ - ovpn.to
304
+ - owlpic.com
305
+ - pancakemail.com
306
+ - pimpedupmyspace.com
307
+ - pjjkp.com
308
+ - politikerclub.de
309
+ - poofy.org
310
+ - pookmail.com
311
+ - privacy.net
312
+ - proxymail.eu
313
+ - prtnx.com
314
+ - punkass.com
315
+ - putthisinyourspamdatabase.com
316
+ - qq.com
317
+ - quickinbox.com
318
+ - rcpt.at
319
+ - recode.me
320
+ - recursor.net
321
+ - regbypass.com
322
+ - regbypass.comsafe-mail.net
323
+ - rejectmail.com
324
+ - rklips.com
325
+ - rmqkr.net
326
+ - rppkn.com
327
+ - rtrtr.com
328
+ - s0ny.net
329
+ - safe-mail.net
330
+ - safersignup.de
331
+ - safetymail.info
332
+ - safetypost.de
333
+ - sandelf.de
334
+ - saynotospams.com
335
+ - selfdestructingmail.com
336
+ - sendspamhere.com
337
+ - sharklasers.com
338
+ - shiftmail.com
339
+ - shitmail.me
340
+ - shortmail.net
341
+ - sibmail.com
342
+ - skeefmail.com
343
+ - slaskpost.se
344
+ - slopsbox.com
345
+ - smellfear.com
346
+ - snakemail.com
347
+ - sneakemail.com
348
+ - sofimail.com
349
+ - sofort-mail.de
350
+ - sogetthis.com
351
+ - soodonims.com
352
+ - spam.la
353
+ - spam.su
354
+ - spamavert.com
355
+ - spambob.com
356
+ - spambob.net
357
+ - spambob.org
358
+ - spambog.com
359
+ - spambog.de
360
+ - spambog.ru
361
+ - spambox.info
362
+ - spambox.irishspringrealty.com
363
+ - spambox.us
364
+ - spamcannon.com
365
+ - spamcannon.net
366
+ - spamcero.com
367
+ - spamcon.org
368
+ - spamcorptastic.com
369
+ - spamcowboy.com
370
+ - spamcowboy.net
371
+ - spamcowboy.org
372
+ - spamday.com
373
+ - spamex.com
374
+ - spamfree24.com
375
+ - spamfree24.de
376
+ - spamfree24.eu
377
+ - spamfree24.info
378
+ - spamfree24.net
379
+ - spamfree24.org
380
+ - spamgourmet.com
381
+ - spamgourmet.net
382
+ - spamgourmet.org
383
+ - spamherelots.com
384
+ - spamhereplease.com
385
+ - spamhole.com
386
+ - spamify.com
387
+ - spaminator.de
388
+ - spamkill.info
389
+ - spaml.com
390
+ - spaml.de
391
+ - spammotel.com
392
+ - spamobox.com
393
+ - spamoff.de
394
+ - spamslicer.com
395
+ - spamspot.com
396
+ - spamthis.co.uk
397
+ - spamthisplease.com
398
+ - spamtrail.com
399
+ - speed.1s.fr
400
+ - supergreatmail.com
401
+ - supermailer.jp
402
+ - suremail.info
403
+ - teewars.org
404
+ - teleworm.com
405
+ - tempalias.com
406
+ - tempe-mail.com
407
+ - tempemail.biz
408
+ - tempemail.com
409
+ - tempemail.net
410
+ - tempinbox.co.uk
411
+ - tempinbox.com
412
+ - tempmail.it
413
+ - tempmail2.com
414
+ - tempomail.fr
415
+ - temporarily.de
416
+ - temporarioemail.com.br
417
+ - temporaryemail.net
418
+ - temporaryforwarding.com
419
+ - temporaryinbox.com
420
+ - thanksnospam.info
421
+ - thankyou2010.com
422
+ - thisisnotmyrealemail.com
423
+ - throwawayemailaddress.com
424
+ - tilien.com
425
+ - tmailinator.com
426
+ - tradermail.info
427
+ - trash-amil.com
428
+ - trash-mail.at
429
+ - trash-mail.com
430
+ - trash-mail.de
431
+ - trash2009.com
432
+ - trashemail.de
433
+ - trashmail.at
434
+ - trashmail.com
435
+ - trashmail.de
436
+ - trashmail.me
437
+ - trashmail.net
438
+ - trashmail.org
439
+ - trashmail.ws
440
+ - trashmailer.com
441
+ - trashymail.com
442
+ - trashymail.net
443
+ - trillianpro.com
444
+ - turual.com
445
+ - twinmail.de
446
+ - tyldd.com
447
+ - uggsrock.com
448
+ - upliftnow.com
449
+ - uplipht.com
450
+ - venompen.com
451
+ - veryrealemail.com
452
+ - viditag.com
453
+ - viewcastmedia.com
454
+ - viewcastmedia.net
455
+ - viewcastmedia.org
456
+ - vztc.com
457
+ - webm4il.info
458
+ - wegwerfadresse.de
459
+ - wegwerfemail.de
460
+ - wegwerfmail.de
461
+ - wegwerfmail.net
462
+ - wegwerfmail.org
463
+ - wetrainbayarea.com
464
+ - wetrainbayarea.org
465
+ - wh4f.org
466
+ - whyspam.me
467
+ - willselfdestruct.com
468
+ - winemaven.info
469
+ - wronghead.com
470
+ - wuzup.net
471
+ - wuzupmail.net
472
+ - www.e4ward.com
473
+ - www.gishpuppy.com
474
+ - www.mailinator.com
475
+ - wwwnew.eu
476
+ - xagloo.com
477
+ - xemaps.com
478
+ - xents.com
479
+ - xmaily.com
480
+ - xoxy.net
481
+ - yep.it
482
+ - yogamaven.com
483
+ - yopmail.com
484
+ - yopmail.fr
485
+ - yopmail.net
486
+ - ypmail.webarnak.fr.eu.org
487
+ - yuurok.com
488
+ - zehnminutenmail.de
489
+ - zippymail.info
490
+ - zoaxe.com
491
+ - zoemail.org
@@ -0,0 +1,3 @@
1
+ module ValidEmail2
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,54 @@
1
+ require "valid_email2/version"
2
+ require "active_model"
3
+ require "active_model/validations"
4
+ require "resolv"
5
+ require "mail"
6
+
7
+ class EmailValidator < ActiveModel::EachValidator
8
+ def self.disposable_emails
9
+ @@disposable_emails ||= YAML.load_file(File.expand_path("../../disposable_emails.yml",__FILE__))
10
+ end
11
+
12
+ def default_options
13
+ { regex: true, disposable: false, mx: false }
14
+ end
15
+
16
+ def validate_each(record, attribute, value)
17
+ return unless value.present?
18
+ options = default_options.merge(self.options)
19
+ email = Mail::Address.new(value)
20
+
21
+ if email.domain && email.address == value
22
+ tree = email.send(:tree)
23
+
24
+ # Valid email needs to have a dot in the domain
25
+ unless tree.domain.dot_atom_text.elements.size > 1
26
+ error(record, attribute)
27
+ end
28
+ else
29
+ error(record, attribute)
30
+ end
31
+
32
+ if options[:disposable]
33
+ if self.class.disposable_emails.include?(email.domain)
34
+ error(record, attribute)
35
+ end
36
+ end
37
+
38
+ if options[:mx]
39
+ mx = []
40
+
41
+ Resolv::DNS.open do |dns|
42
+ mx.concat dns.getresources(email.domain, Resolv::DNS::Resource::IN::MX)
43
+ end
44
+
45
+ unless mx.any?
46
+ error(record, attribute)
47
+ end
48
+ end
49
+ end
50
+
51
+ def error(record, attribute)
52
+ record.errors.add(attribute, options[:message] || :invalid)
53
+ end
54
+ end
@@ -0,0 +1,14 @@
1
+ $:.unshift File.expand_path("../lib",__FILE__)
2
+ require "valid_email2"
3
+
4
+ class TestModel
5
+ include ActiveModel::Validations
6
+
7
+ def initialize(attributes = {})
8
+ @attributes = attributes
9
+ end
10
+
11
+ def read_attribute_for_validation(key)
12
+ @attributes[key]
13
+ end
14
+ end
@@ -0,0 +1,52 @@
1
+ require "spec_helper"
2
+
3
+ class TestUser < TestModel
4
+ validates :email, email: true
5
+ end
6
+
7
+ class TestUserMX < TestModel
8
+ validates :email, email: { mx: true }
9
+ end
10
+
11
+ class TestUserDisallowDisposable < TestModel
12
+ validates :email, email: { disposable: true }
13
+ end
14
+
15
+ describe ValidEmail2 do
16
+ describe "basic validation" do
17
+ subject(:user) { TestUser.new(email: "") }
18
+
19
+ it "should be valid when email is empty" do
20
+ user.valid?.should be_true
21
+ end
22
+
23
+ it "should be invalid when email is malformed" do
24
+ user = TestUser.new(email: "foo@bar")
25
+ user.valid?.should be_false
26
+ end
27
+ end
28
+
29
+ describe "disposable emails" do
30
+ it "should be valid when email is not in the list of disposable emails" do
31
+ user = TestUserDisallowDisposable.new(email: "foo@gmail.com")
32
+ user.valid?.should be_true
33
+ end
34
+
35
+ it "should be invalid when email is in the list of disposable emails" do
36
+ user = TestUserDisallowDisposable.new(email: "foo@#{EmailValidator.disposable_emails.first}")
37
+ user.valid?.should be_false
38
+ end
39
+ end
40
+
41
+ describe "mx lookup" do
42
+ it "should be valid if mx records are found" do
43
+ user = TestUserMX.new(email: "foo@gmail.com")
44
+ user.valid?.should be_true
45
+ end
46
+
47
+ it "should be invalid if no mx records are found" do
48
+ user = TestUserMX.new(email: "foo@subdomain.gmail.com")
49
+ user.valid?.should be_false
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'valid_email2/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "valid_email2"
8
+ spec.version = ValidEmail2::VERSION
9
+ spec.authors = ["Micke Lisinge"]
10
+ spec.email = ["lisinge@gmail.com"]
11
+ spec.description = %q{ActiveModel validation for email. Including MX lookup and disposable email blacklist}
12
+ spec.summary = %q{ActiveModel validation for email. Including MX lookup and disposable email blacklist}
13
+ spec.homepage = "https://github.com/lisinge/valid_email2"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec", "~> 2.14.1"
24
+ spec.add_runtime_dependency "mail"
25
+ spec.add_runtime_dependency "activemodel"
26
+ end
metadata ADDED
@@ -0,0 +1,129 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: valid_email2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Micke Lisinge
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-07-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 2.14.1
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 2.14.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: mail
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activemodel
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ description: ActiveModel validation for email. Including MX lookup and disposable
84
+ email blacklist
85
+ email:
86
+ - lisinge@gmail.com
87
+ executables: []
88
+ extensions: []
89
+ extra_rdoc_files: []
90
+ files:
91
+ - .gitignore
92
+ - Gemfile
93
+ - LICENSE.txt
94
+ - README.md
95
+ - Rakefile
96
+ - disposable_emails.yml
97
+ - lib/valid_email2.rb
98
+ - lib/valid_email2/version.rb
99
+ - spec/spec_helper.rb
100
+ - spec/valid_email2_spec.rb
101
+ - valid_email2.gemspec
102
+ homepage: https://github.com/lisinge/valid_email2
103
+ licenses:
104
+ - MIT
105
+ metadata: {}
106
+ post_install_message:
107
+ rdoc_options: []
108
+ require_paths:
109
+ - lib
110
+ required_ruby_version: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
115
+ required_rubygems_version: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - '>='
118
+ - !ruby/object:Gem::Version
119
+ version: '0'
120
+ requirements: []
121
+ rubyforge_project:
122
+ rubygems_version: 2.0.2
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: ActiveModel validation for email. Including MX lookup and disposable email
126
+ blacklist
127
+ test_files:
128
+ - spec/spec_helper.rb
129
+ - spec/valid_email2_spec.rb