valid_email 0.0.13 → 0.1.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 +5 -0
 - data/History.md +11 -0
 - data/README.md +3 -4
 - data/config/locales/pt-BR.yml +5 -0
 - data/config/valid_email.yml +25 -18
 - data/lib/valid_email/mx_validator.rb +6 -0
 - data/lib/valid_email/validate_email.rb +5 -1
 - data/lib/valid_email/version.rb +1 -1
 - data/spec/email_validator_spec.rb +12 -0
 - data/spec/validate_email_spec.rb +1 -0
 - data/valid_email.gemspec +10 -3
 - metadata +11 -9
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: e74f85e1ed674767b2c063685a30bb2ebbc6e9fe
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: fe2254848da959f25c12732890ba4acd020c618d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c5b07afeee1c98a219e66d40358e46a898939951cfeb6f5aef6d2bd6f76b77f62e3da37442d614746905c54b0a6acee5cf5f4c1ae3fa67a18f2607b1d2d95493
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: db5b162817ff28baee70881951062943363808f7f519954d15e91a0eb66207839249b84f8f0b819396e4a22c16de18081a4e209d9d8e4d42126559a5fde3f924
         
     | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/History.md
    ADDED
    
    | 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
             
     | 
| 
      
 2 
     | 
    
         
            +
            0.1.0 / 2017-09-27
         
     | 
| 
      
 3 
     | 
    
         
            +
            ==================
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
              * #86 Change dependency on mail to >= 2.6.1
         
     | 
| 
      
 6 
     | 
    
         
            +
              * #85 adding disposable email domains from getnada
         
     | 
| 
      
 7 
     | 
    
         
            +
              * #84 ValidateEmail.valid?: make domain validation true by default
         
     | 
| 
      
 8 
     | 
    
         
            +
              * #83 Allow to configure timeouts for dns
         
     | 
| 
      
 9 
     | 
    
         
            +
              * #82 Travis CI. Support for more Ruby versions
         
     | 
| 
      
 10 
     | 
    
         
            +
              * #80 rescue Mail::Field::ParseError also in domain_valid?
         
     | 
| 
      
 11 
     | 
    
         
            +
              * #78 Added pt-BR translation
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -40,12 +40,11 @@ Or 
     | 
|
| 
       40 
40 
     | 
    
         | 
| 
       41 
41 
     | 
    
         
             
                validates :email, :email => {:message => I18n.t('validations.errors.models.user.invalid_email')}, :mx => {:message => I18n.t('validations.errors.models.user.invalid_mx')}
         
     | 
| 
       42 
42 
     | 
    
         | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                validates :email, :email => {:domain => true}
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
      
 43 
     | 
    
         
            +
            By default, the email domain is validated using a regular expression, which does not require an external service and improves performance.
         
     | 
| 
       47 
44 
     | 
    
         
             
            Alternatively, you can check if an email domain has a MX or A record by using `:mx_with_fallback` instead of `:mx`.
         
     | 
| 
       48 
45 
     | 
    
         | 
| 
      
 46 
     | 
    
         
            +
                validates :email, :email => {:mx_with_fallback => true}
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
       49 
48 
     | 
    
         
             
            You can detect disposable accounts
         
     | 
| 
       50 
49 
     | 
    
         | 
| 
       51 
50 
     | 
    
         
             
                validates :email, :email => {:ban_disposable_email => true, :message => I18n.t('validations.errors.models.user.invalid_email')}
         
     | 
    
        data/config/valid_email.yml
    CHANGED
    
    | 
         @@ -1,16 +1,4 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            disposable_email_services:
         
     | 
| 
       2 
     | 
    
         
            -
              - mailinator.com
         
     | 
| 
       3 
     | 
    
         
            -
              - devnullmail.com
         
     | 
| 
       4 
     | 
    
         
            -
              - daddymail.biz
         
     | 
| 
       5 
     | 
    
         
            -
              - grr.la
         
     | 
| 
       6 
     | 
    
         
            -
              - drdrb.net
         
     | 
| 
       7 
     | 
    
         
            -
              - getairmail.com
         
     | 
| 
       8 
     | 
    
         
            -
              - evopo.com
         
     | 
| 
       9 
     | 
    
         
            -
              - 6paq.com
         
     | 
| 
       10 
     | 
    
         
            -
              - paplease.com
         
     | 
| 
       11 
     | 
    
         
            -
              - acentri.com
         
     | 
| 
       12 
     | 
    
         
            -
              - droplar.com
         
     | 
| 
       13 
     | 
    
         
            -
              - appixie.com
         
     | 
| 
       14 
2 
     | 
    
         
             
              - 0-mail.com
         
     | 
| 
       15 
3 
     | 
    
         
             
              - 0815.ru
         
     | 
| 
       16 
4 
     | 
    
         
             
              - 0clickemail.com
         
     | 
| 
         @@ -29,21 +17,18 @@ disposable_email_services: 
     | 
|
| 
       29 
17 
     | 
    
         
             
              - 675hosting.com
         
     | 
| 
       30 
18 
     | 
    
         
             
              - 675hosting.net
         
     | 
| 
       31 
19 
     | 
    
         
             
              - 675hosting.org
         
     | 
| 
      
 20 
     | 
    
         
            +
              - 6paq.com
         
     | 
| 
       32 
21 
     | 
    
         
             
              - 6url.com
         
     | 
| 
       33 
22 
     | 
    
         
             
              - 75hosting.com
         
     | 
| 
       34 
23 
     | 
    
         
             
              - 75hosting.net
         
     | 
| 
       35 
24 
     | 
    
         
             
              - 75hosting.org
         
     | 
| 
       36 
25 
     | 
    
         
             
              - 7tags.com
         
     | 
| 
       37 
26 
     | 
    
         
             
              - 9ox.net
         
     | 
| 
       38 
     | 
    
         
            -
              - disposableemailaddresses.com
         
     | 
| 
       39 
     | 
    
         
            -
              - putthisinyourspamdatabase.com
         
     | 
| 
       40 
     | 
    
         
            -
              - sendspamhere.com
         
     | 
| 
       41 
     | 
    
         
            -
              - spamherelots.com
         
     | 
| 
       42 
     | 
    
         
            -
              - spamhereplease.com
         
     | 
| 
       43 
     | 
    
         
            -
              - tempemail.net
         
     | 
| 
       44 
27 
     | 
    
         
             
              - a-bc.net
         
     | 
| 
      
 28 
     | 
    
         
            +
              - acentri.com
         
     | 
| 
       45 
29 
     | 
    
         
             
              - afrobacon.com
         
     | 
| 
       46 
30 
     | 
    
         
             
              - ajaxapp.net
         
     | 
| 
      
 31 
     | 
    
         
            +
              - amail.club
         
     | 
| 
       47 
32 
     | 
    
         
             
              - amail4.me
         
     | 
| 
       48 
33 
     | 
    
         
             
              - amilegit.com
         
     | 
| 
       49 
34 
     | 
    
         
             
              - amiri.net
         
     | 
| 
         @@ -53,8 +38,11 @@ disposable_email_services: 
     | 
|
| 
       53 
38 
     | 
    
         
             
              - antichef.com
         
     | 
| 
       54 
39 
     | 
    
         
             
              - antichef.net
         
     | 
| 
       55 
40 
     | 
    
         
             
              - antispam.de
         
     | 
| 
      
 41 
     | 
    
         
            +
              - appixie.com
         
     | 
| 
       56 
42 
     | 
    
         
             
              - armyspy.com
         
     | 
| 
       57 
43 
     | 
    
         
             
              - azmeil.tk
         
     | 
| 
      
 44 
     | 
    
         
            +
              - banit.club
         
     | 
| 
      
 45 
     | 
    
         
            +
              - banit.me
         
     | 
| 
       58 
46 
     | 
    
         
             
              - baxomale.ht.cx
         
     | 
| 
       59 
47 
     | 
    
         
             
              - beefmilk.com
         
     | 
| 
       60 
48 
     | 
    
         
             
              - binkmail.com
         
     | 
| 
         @@ -69,11 +57,13 @@ disposable_email_services: 
     | 
|
| 
       69 
57 
     | 
    
         
             
              - bsnow.net
         
     | 
| 
       70 
58 
     | 
    
         
             
              - bugmenot.com
         
     | 
| 
       71 
59 
     | 
    
         
             
              - bumpymail.com
         
     | 
| 
      
 60 
     | 
    
         
            +
              - cars2.club
         
     | 
| 
       72 
61 
     | 
    
         
             
              - casualdx.com
         
     | 
| 
       73 
62 
     | 
    
         
             
              - centermail.com
         
     | 
| 
       74 
63 
     | 
    
         
             
              - centermail.net
         
     | 
| 
       75 
64 
     | 
    
         
             
              - chogmail.com
         
     | 
| 
       76 
65 
     | 
    
         
             
              - choicemail1.com
         
     | 
| 
      
 66 
     | 
    
         
            +
              - cmail.club
         
     | 
| 
       77 
67 
     | 
    
         
             
              - cool.fr.nf
         
     | 
| 
       78 
68 
     | 
    
         
             
              - correo.blogos.net
         
     | 
| 
       79 
69 
     | 
    
         
             
              - cosmorph.com
         
     | 
| 
         @@ -84,6 +74,7 @@ disposable_email_services: 
     | 
|
| 
       84 
74 
     | 
    
         
             
              - cust.in
         
     | 
| 
       85 
75 
     | 
    
         
             
              - cuvox.de
         
     | 
| 
       86 
76 
     | 
    
         
             
              - dacoolest.com
         
     | 
| 
      
 77 
     | 
    
         
            +
              - daddymail.biz
         
     | 
| 
       87 
78 
     | 
    
         
             
              - dandikmail.com
         
     | 
| 
       88 
79 
     | 
    
         
             
              - dayrep.com
         
     | 
| 
       89 
80 
     | 
    
         
             
              - deadaddress.com
         
     | 
| 
         @@ -96,6 +87,7 @@ disposable_email_services: 
     | 
|
| 
       96 
87 
     | 
    
         
             
              - discardmail.com
         
     | 
| 
       97 
88 
     | 
    
         
             
              - discardmail.de
         
     | 
| 
       98 
89 
     | 
    
         
             
              - disposableaddress.com
         
     | 
| 
      
 90 
     | 
    
         
            +
              - disposableemailaddresses.com
         
     | 
| 
       99 
91 
     | 
    
         
             
              - disposeamail.com
         
     | 
| 
       100 
92 
     | 
    
         
             
              - disposemail.com
         
     | 
| 
       101 
93 
     | 
    
         
             
              - dispostable.com
         
     | 
| 
         @@ -107,6 +99,9 @@ disposable_email_services: 
     | 
|
| 
       107 
99 
     | 
    
         
             
              - dontreg.com
         
     | 
| 
       108 
100 
     | 
    
         
             
              - dontsendmespam.de
         
     | 
| 
       109 
101 
     | 
    
         
             
              - drdrb.com
         
     | 
| 
      
 102 
     | 
    
         
            +
              - drdrb.net
         
     | 
| 
      
 103 
     | 
    
         
            +
              - droplar.com
         
     | 
| 
      
 104 
     | 
    
         
            +
              - duck2.club
         
     | 
| 
       110 
105 
     | 
    
         
             
              - dump-email.info
         
     | 
| 
       111 
106 
     | 
    
         
             
              - dumpandjunk.com
         
     | 
| 
       112 
107 
     | 
    
         
             
              - dumpmail.de
         
     | 
| 
         @@ -133,6 +128,7 @@ disposable_email_services: 
     | 
|
| 
       133 
128 
     | 
    
         
             
              - etranquil.com
         
     | 
| 
       134 
129 
     | 
    
         
             
              - etranquil.net
         
     | 
| 
       135 
130 
     | 
    
         
             
              - etranquil.org
         
     | 
| 
      
 131 
     | 
    
         
            +
              - evopo.com
         
     | 
| 
       136 
132 
     | 
    
         
             
              - explodemail.com
         
     | 
| 
       137 
133 
     | 
    
         
             
              - fakeinbox.com
         
     | 
| 
       138 
134 
     | 
    
         
             
              - fakeinformation.com
         
     | 
| 
         @@ -158,6 +154,7 @@ disposable_email_services: 
     | 
|
| 
       158 
154 
     | 
    
         
             
              - get1mail.com
         
     | 
| 
       159 
155 
     | 
    
         
             
              - get2mail.fr
         
     | 
| 
       160 
156 
     | 
    
         
             
              - getairmail.com
         
     | 
| 
      
 157 
     | 
    
         
            +
              - getnada.com
         
     | 
| 
       161 
158 
     | 
    
         
             
              - getonemail.com
         
     | 
| 
       162 
159 
     | 
    
         
             
              - getonemail.net
         
     | 
| 
       163 
160 
     | 
    
         
             
              - ghosttexter.de
         
     | 
| 
         @@ -174,6 +171,7 @@ disposable_email_services: 
     | 
|
| 
       174 
171 
     | 
    
         
             
              - gowikitv.com
         
     | 
| 
       175 
172 
     | 
    
         
             
              - great-host.in
         
     | 
| 
       176 
173 
     | 
    
         
             
              - greensloth.com
         
     | 
| 
      
 174 
     | 
    
         
            +
              - grr.la
         
     | 
| 
       177 
175 
     | 
    
         
             
              - gsrv.co.uk
         
     | 
| 
       178 
176 
     | 
    
         
             
              - guerillamail.biz
         
     | 
| 
       179 
177 
     | 
    
         
             
              - guerillamail.com
         
     | 
| 
         @@ -299,6 +297,8 @@ disposable_email_services: 
     | 
|
| 
       299 
297 
     | 
    
         
             
              - myspacepimpedup.com
         
     | 
| 
       300 
298 
     | 
    
         
             
              - myspamless.com
         
     | 
| 
       301 
299 
     | 
    
         
             
              - mytrashmail.com
         
     | 
| 
      
 300 
     | 
    
         
            +
              - nada.email
         
     | 
| 
      
 301 
     | 
    
         
            +
              - nada.ltd
         
     | 
| 
       302 
302 
     | 
    
         
             
              - neomailbox.com
         
     | 
| 
       303 
303 
     | 
    
         
             
              - nepwk.com
         
     | 
| 
       304 
304 
     | 
    
         
             
              - nervmich.net
         
     | 
| 
         @@ -336,6 +336,7 @@ disposable_email_services: 
     | 
|
| 
       336 
336 
     | 
    
         
             
              - ovpn.to
         
     | 
| 
       337 
337 
     | 
    
         
             
              - owlpic.com
         
     | 
| 
       338 
338 
     | 
    
         
             
              - pancakemail.com
         
     | 
| 
      
 339 
     | 
    
         
            +
              - paplease.com
         
     | 
| 
       339 
340 
     | 
    
         
             
              - pimpedupmyspace.com
         
     | 
| 
       340 
341 
     | 
    
         
             
              - pjjkp.com
         
     | 
| 
       341 
342 
     | 
    
         
             
              - politikerclub.de
         
     | 
| 
         @@ -345,6 +346,7 @@ disposable_email_services: 
     | 
|
| 
       345 
346 
     | 
    
         
             
              - proxymail.eu
         
     | 
| 
       346 
347 
     | 
    
         
             
              - prtnx.com
         
     | 
| 
       347 
348 
     | 
    
         
             
              - punkass.com
         
     | 
| 
      
 349 
     | 
    
         
            +
              - putthisinyourspamdatabase.com
         
     | 
| 
       348 
350 
     | 
    
         
             
              - qq.com
         
     | 
| 
       349 
351 
     | 
    
         
             
              - quickinbox.com
         
     | 
| 
       350 
352 
     | 
    
         
             
              - rcpt.at
         
     | 
| 
         @@ -366,6 +368,7 @@ disposable_email_services: 
     | 
|
| 
       366 
368 
     | 
    
         
             
              - sandelf.de
         
     | 
| 
       367 
369 
     | 
    
         
             
              - saynotospams.com
         
     | 
| 
       368 
370 
     | 
    
         
             
              - selfdestructingmail.com
         
     | 
| 
      
 371 
     | 
    
         
            +
              - sendspamhere.com
         
     | 
| 
       369 
372 
     | 
    
         
             
              - sharklasers.com
         
     | 
| 
       370 
373 
     | 
    
         
             
              - shiftmail.com
         
     | 
| 
       371 
374 
     | 
    
         
             
              - shitmail.me
         
     | 
| 
         @@ -413,6 +416,8 @@ disposable_email_services: 
     | 
|
| 
       413 
416 
     | 
    
         
             
              - spamgourmet.com
         
     | 
| 
       414 
417 
     | 
    
         
             
              - spamgourmet.net
         
     | 
| 
       415 
418 
     | 
    
         
             
              - spamgourmet.org
         
     | 
| 
      
 419 
     | 
    
         
            +
              - spamherelots.com
         
     | 
| 
      
 420 
     | 
    
         
            +
              - spamhereplease.com
         
     | 
| 
       416 
421 
     | 
    
         
             
              - spamhole.com
         
     | 
| 
       417 
422 
     | 
    
         
             
              - spamify.com
         
     | 
| 
       418 
423 
     | 
    
         
             
              - spaminator.de
         
     | 
| 
         @@ -440,6 +445,7 @@ disposable_email_services: 
     | 
|
| 
       440 
445 
     | 
    
         
             
              - tempe-mail.com
         
     | 
| 
       441 
446 
     | 
    
         
             
              - tempemail.biz
         
     | 
| 
       442 
447 
     | 
    
         
             
              - tempemail.com
         
     | 
| 
      
 448 
     | 
    
         
            +
              - tempemail.net
         
     | 
| 
       443 
449 
     | 
    
         
             
              - tempinbox.co.uk
         
     | 
| 
       444 
450 
     | 
    
         
             
              - tempinbox.com
         
     | 
| 
       445 
451 
     | 
    
         
             
              - tempmail.it
         
     | 
| 
         @@ -500,6 +506,7 @@ disposable_email_services: 
     | 
|
| 
       500 
506 
     | 
    
         
             
              - whyspam.me
         
     | 
| 
       501 
507 
     | 
    
         
             
              - willselfdestruct.com
         
     | 
| 
       502 
508 
     | 
    
         
             
              - winemaven.info
         
     | 
| 
      
 509 
     | 
    
         
            +
              - wmail.club
         
     | 
| 
       503 
510 
     | 
    
         
             
              - wronghead.com
         
     | 
| 
       504 
511 
     | 
    
         
             
              - wuzup.net
         
     | 
| 
       505 
512 
     | 
    
         
             
              - wuzupmail.net
         
     | 
| 
         @@ -3,6 +3,12 @@ require 'active_model/validations' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            require 'resolv'
         
     | 
| 
       4 
4 
     | 
    
         
             
            require 'valid_email/validate_email'
         
     | 
| 
       5 
5 
     | 
    
         
             
            class MxValidator < ActiveModel::EachValidator
         
     | 
| 
      
 6 
     | 
    
         
            +
              def self.config
         
     | 
| 
      
 7 
     | 
    
         
            +
                @@config = { timeouts: [] } unless defined? @@config
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                @@config
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
       6 
12 
     | 
    
         
             
              def validate_each(record,attribute,value)
         
     | 
| 
       7 
13 
     | 
    
         
             
                r = ValidateEmail.mx_valid?(value)
         
     | 
| 
       8 
14 
     | 
    
         
             
                record.errors.add attribute, (options[:message] || I18n.t(:invalid, :scope => "valid_email.validations.email")) unless r
         
     | 
| 
         @@ -10,7 +10,7 @@ class ValidateEmail 
     | 
|
| 
       10 
10 
     | 
    
         
             
                def valid?(value, user_options={})
         
     | 
| 
       11 
11 
     | 
    
         
             
                  options = {
         
     | 
| 
       12 
12 
     | 
    
         
             
                    :mx => false,
         
     | 
| 
       13 
     | 
    
         
            -
                    :domain =>  
     | 
| 
      
 13 
     | 
    
         
            +
                    :domain => true,
         
     | 
| 
       14 
14 
     | 
    
         
             
                    :message => nil
         
     | 
| 
       15 
15 
     | 
    
         
             
                  }.merge(user_options)
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
         @@ -92,6 +92,7 @@ class ValidateEmail 
     | 
|
| 
       92 
92 
     | 
    
         | 
| 
       93 
93 
     | 
    
         
             
                  mx = []
         
     | 
| 
       94 
94 
     | 
    
         
             
                  Resolv::DNS.open do |dns|
         
     | 
| 
      
 95 
     | 
    
         
            +
                    dns.timeouts = MxValidator.config[:timeouts] unless MxValidator.config[:timeouts].empty?
         
     | 
| 
       95 
96 
     | 
    
         
             
                    mx.concat dns.getresources(m.domain, Resolv::DNS::Resource::IN::MX)
         
     | 
| 
       96 
97 
     | 
    
         
             
                    mx.concat dns.getresources(m.domain, Resolv::DNS::Resource::IN::A) if fallback
         
     | 
| 
       97 
98 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -110,6 +111,9 @@ class ValidateEmail 
     | 
|
| 
       110 
111 
     | 
    
         
             
                  return false unless m.domain
         
     | 
| 
       111 
112 
     | 
    
         | 
| 
       112 
113 
     | 
    
         
             
                  !(m.domain =~ DOMAIN_REGEX).nil?
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
      
 115 
     | 
    
         
            +
                rescue Mail::Field::ParseError
         
     | 
| 
      
 116 
     | 
    
         
            +
                  false
         
     | 
| 
       113 
117 
     | 
    
         
             
                end
         
     | 
| 
       114 
118 
     | 
    
         | 
| 
       115 
119 
     | 
    
         
             
                def ban_disposable_email?(value)
         
     | 
    
        data/lib/valid_email/version.rb
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ValidEmailVersion = "0.0 
     | 
| 
      
 1 
     | 
    
         
            +
            ValidEmailVersion = "0.1.0"
         
     | 
| 
         @@ -100,6 +100,18 @@ describe EmailValidator do 
     | 
|
| 
       100 
100 
     | 
    
         
             
                    expect(subject.errors[:email]).to eq errors
         
     | 
| 
       101 
101 
     | 
    
         
             
                  end
         
     | 
| 
       102 
102 
     | 
    
         | 
| 
      
 103 
     | 
    
         
            +
                  it "fails when email ends with a period" do
         
     | 
| 
      
 104 
     | 
    
         
            +
                    subject.email = 'john@doe.com.'
         
     | 
| 
      
 105 
     | 
    
         
            +
                    expect(subject.valid?).to be_falsey
         
     | 
| 
      
 106 
     | 
    
         
            +
                    expect(subject.errors[:email]).to eq errors
         
     | 
| 
      
 107 
     | 
    
         
            +
                  end
         
     | 
| 
      
 108 
     | 
    
         
            +
             
     | 
| 
      
 109 
     | 
    
         
            +
                  it "fails when email ends with special characters" do
         
     | 
| 
      
 110 
     | 
    
         
            +
                    subject.email = 'john@doe.com&'
         
     | 
| 
      
 111 
     | 
    
         
            +
                    expect(subject.valid?).to be_falsey
         
     | 
| 
      
 112 
     | 
    
         
            +
                    expect(subject.errors[:email]).to eq errors
         
     | 
| 
      
 113 
     | 
    
         
            +
                  end
         
     | 
| 
      
 114 
     | 
    
         
            +
             
     | 
| 
       103 
115 
     | 
    
         
             
                  it "fails when email is valid with information" do
         
     | 
| 
       104 
116 
     | 
    
         
             
                    subject.email = '"John Doe" <john@doe.com>'
         
     | 
| 
       105 
117 
     | 
    
         
             
                    expect(subject.valid?).to be_falsey
         
     | 
    
        data/spec/validate_email_spec.rb
    CHANGED
    
    
    
        data/valid_email.gemspec
    CHANGED
    
    | 
         @@ -21,7 +21,14 @@ Gem::Specification.new do |s| 
     | 
|
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
              # specify any dependencies here; for example:
         
     | 
| 
       23 
23 
     | 
    
         
             
              s.add_development_dependency "rspec", "~> 2.99"
         
     | 
| 
       24 
     | 
    
         
            -
              s.add_development_dependency "rake"
         
     | 
| 
       25 
     | 
    
         
            -
              s.add_runtime_dependency "mail", " 
     | 
| 
       26 
     | 
    
         
            -
               
     | 
| 
      
 24 
     | 
    
         
            +
              s.add_development_dependency "rake", '< 11.0'
         
     | 
| 
      
 25 
     | 
    
         
            +
              s.add_runtime_dependency "mail", ">= 2.6.1"
         
     | 
| 
      
 26 
     | 
    
         
            +
              if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new('2.0')
         
     | 
| 
      
 27 
     | 
    
         
            +
                s.add_runtime_dependency 'mime-types', '<= 2.6.2'
         
     | 
| 
      
 28 
     | 
    
         
            +
              end
         
     | 
| 
      
 29 
     | 
    
         
            +
              if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.2')
         
     | 
| 
      
 30 
     | 
    
         
            +
                s.add_runtime_dependency "activemodel", '< 5.0.0'
         
     | 
| 
      
 31 
     | 
    
         
            +
              else
         
     | 
| 
      
 32 
     | 
    
         
            +
                s.add_runtime_dependency "activemodel"
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
       27 
34 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: valid_email
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Ramihajamalala Hery
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-09-27 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rspec
         
     | 
| 
         @@ -28,28 +28,28 @@ dependencies: 
     | 
|
| 
       28 
28 
     | 
    
         
             
              name: rake
         
     | 
| 
       29 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
30 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - - " 
     | 
| 
      
 31 
     | 
    
         
            +
                - - "<"
         
     | 
| 
       32 
32 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: '11.0'
         
     | 
| 
       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 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '11.0'
         
     | 
| 
       41 
41 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       42 
42 
     | 
    
         
             
              name: mail
         
     | 
| 
       43 
43 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       44 
44 
     | 
    
         
             
                requirements:
         
     | 
| 
       45 
     | 
    
         
            -
                - - " 
     | 
| 
      
 45 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       46 
46 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       47 
47 
     | 
    
         
             
                    version: 2.6.1
         
     | 
| 
       48 
48 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       49 
49 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       50 
50 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
     | 
    
         
            -
                - - " 
     | 
| 
      
 52 
     | 
    
         
            +
                - - ">="
         
     | 
| 
       53 
53 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       54 
54 
     | 
    
         
             
                    version: 2.6.1
         
     | 
| 
       55 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
         @@ -76,6 +76,7 @@ files: 
     | 
|
| 
       76 
76 
     | 
    
         
             
            - ".gitignore"
         
     | 
| 
       77 
77 
     | 
    
         
             
            - ".travis.yml"
         
     | 
| 
       78 
78 
     | 
    
         
             
            - Gemfile
         
     | 
| 
      
 79 
     | 
    
         
            +
            - History.md
         
     | 
| 
       79 
80 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       80 
81 
     | 
    
         
             
            - README.md
         
     | 
| 
       81 
82 
     | 
    
         
             
            - Rakefile
         
     | 
| 
         @@ -87,6 +88,7 @@ files: 
     | 
|
| 
       87 
88 
     | 
    
         
             
            - config/locales/id.yml
         
     | 
| 
       88 
89 
     | 
    
         
             
            - config/locales/ja.yml
         
     | 
| 
       89 
90 
     | 
    
         
             
            - config/locales/pl.yml
         
     | 
| 
      
 91 
     | 
    
         
            +
            - config/locales/pt-BR.yml
         
     | 
| 
       90 
92 
     | 
    
         
             
            - config/locales/ru.yml
         
     | 
| 
       91 
93 
     | 
    
         
             
            - config/locales/sv.yml
         
     | 
| 
       92 
94 
     | 
    
         
             
            - config/locales/uk.yml
         
     | 
| 
         @@ -126,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       126 
128 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       127 
129 
     | 
    
         
             
            requirements: []
         
     | 
| 
       128 
130 
     | 
    
         
             
            rubyforge_project: valid_email
         
     | 
| 
       129 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 131 
     | 
    
         
            +
            rubygems_version: 2.6.10
         
     | 
| 
       130 
132 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       131 
133 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       132 
134 
     | 
    
         
             
            summary: ActiveModel Validation for email
         
     |