valid_email2 0.0.1

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 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