README.md in valid_email2-0.0.4 vs README.md in valid_email2-1.0.0

- old
+ new

@@ -1,19 +1,33 @@ # ValidEmail2 [![Build Status](https://travis-ci.org/lisinge/valid_email2.png?branch=master)](https://travis-ci.org/lisinge/valid_email2) +[![Gem Version](https://badge.fury.io/rb/valid_email2.png)](http://badge.fury.io/rb/valid_email2) [![Coverage Status](https://coveralls.io/repos/lisinge/valid_email2/badge.png)](https://coveralls.io/r/lisinge/valid_email2) [![Code Climate](https://codeclimate.com/github/lisinge/valid_email2.png)](https://codeclimate.com/github/lisinge/valid_email2) [![Dependency Status](https://gemnasium.com/lisinge/valid_email2.png)](https://gemnasium.com/lisinge/valid_email2) -Validate emails without regexp but with the help of the `mail` gem and MX server lookup. -Optionally validate against a list of disposable email domains. +Validate emails with the help of the `mail` gem instead of some cluncy regexp. +Aditionally validate that the domain has a MX record. +Optionally validate against a static [list of disposable email services](vendor/disposable_emails.yml). + +### Why? + +There are lots of other gems and libraries that validates email adresses but most of them use some cluncy regexp. +I also saw a need to be able to validate that the email address is not coming from a "disposable email" provider. + +### Is it production ready? + +Yes, it is used in several production apps. + ## Installation Add this line to your application's Gemfile: - gem 'valid_email2' +```ruby +gem "valid_email2" +``` And then execute: $ bundle @@ -21,10 +35,53 @@ $ gem install valid_email2 ## Usage -TODO: Write usage instructions here +### Use with ActiveModel + +If you just want to validate that it is a valid email address: +```ruby +class User < ActiveRecord::Base + validates :email, presence: true, email: true +end +``` + +To validate that the domain has a MX record: +```ruby +validates :email, email: { mx: true } +``` + +To validate that the domain is not a disposable email: +```ruby +validates :email, email: { disposable: true } +``` + +All together: +```ruby +validates :email, email: { mx: true, disposable: true } +``` + +> Note that this gem will let an empty email pass through so you will need to +> add `presence: true` if you require an email + +### Use without ActiveModel + +```ruby +address = ValidEmail2::Address.new("lisinge@gmail.com") +address.valid? => true +address.disposable? => false +address.valid_mx? => true +``` + +## Requirements + +This gem requires Rails 3.2 or 4.0. It is tested against both versions under: +* Ruby-1.9 +* Ruby-2.0 +* JRuby-1.9 +* JRuby-2.0 +* Rubinius-1.9 ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`)