Validates the email format with the email_regex gem.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.travis.yml
Gemfile
LICENSE.txt
README.md
Rakefile
email_format.gemspec

README.md

Email Format

Build Status

This gem uses the thorough email validation implemented by the email_regex gem written by Doug Wiegley which "provides a valid email regex that conforms to most valid RFC edges cases (disallows backticks), and allows for a few illegal patterns that are in common use".

Installation

Add this line to your application's Gemfile:

gem 'email_format'

And then execute:

$ bundle

Or install it yourself as:

$ gem install email_format

Usage

EmailFormat Module

There's a valid? method in the EmailFormat module that accepts an email as an argument:

require 'email_format'
EmailFormat.valid?('invalid_email')   # => false
EmailFormat.valid?('valid@email.com') # => true

ActiveModel::Validations

Using it is as simple as using the validates keyword in your model:

class User < ActiveRecord::Base

  # ...

  validates :email, email_format: true

  # ...

end

Now the email attribute will be validated accordingly:

User.new('valid@email.com').valid? # => true
User.new('invalid_email@@').valid? # => false

By default, email_format is pretty relaxed, but there is a strict mode

class User < ActiveRecord::Base

  # ...

  validates :email, email_format: { strict: true }

  # ...

end

Also, the model in question doesn't need to inherit from ActiveRecord::Base, you only need to include ActiveModel::Validations in your class:

require 'email_format'

class Awesome
  include ActiveModel::Validations
  attr_accessor :email
  validates :email, email_format: true
end

awesome = Awesome.new

awesome.email = "valid@email.com"
awesome.valid? # => true

awesome.email = "invalid_email"
awesome.valid? # => false

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request