module EmailAddress

EmailAddress parses and validates email addresses against RFC standard, conventional, canonical, formats and other special uses.

ActiveRecord v5.0 Custom Type

1) Register your types

# config/initializers/email_address.rb
ActiveRecord::Type.register(:email_address, EmailAddress::Address)
ActiveRecord::Type.register(:canonical_email_address,
                            EmailAddress::CanonicalEmailAddressType)

2) Define your email address columns in your model class

class User < ApplicationRecord
  attribute :email, :email_address
  attribute :canonical_email, :canonical_email_address

  def email=(email_address)
    self[:canonical_email] = email_address
    self[:email] = email_address
  end
end

3) Profit!

user = User.new(email:"Pat.Smith+registrations@gmail.com")
user.email           #=> "pat.smith+registrations@gmail.com"
user.canonical_email #=> "patsmith@gmail.com"

ActiveRecord v5.0 Custom Type

1) Register your types

# config/initializers/email_address.rb
ActiveRecord::Type.register(:email_address, EmailAddress::Address)
ActiveRecord::Type.register(:canonical_email_address,
                            EmailAddress::CanonicalEmailAddressType)

2) Define your email address columns in your model class

class User < ApplicationRecord
  attribute :email, :email_address
  attribute :canonical_email, :canonical_email_address

  def email=(email_address)
    self[:canonical_email] = email_address
    self[:email] = email_address
  end
end

3) Profit!

user = User.new(email:"Pat.Smith+registrations@gmail.com")
user.email           #=> "pat.smith+registrations@gmail.com"
user.canonical_email #=> "patsmith@gmail.com"

Constants

VERSION

Public Class Methods

matches?(email_address, rules, config = {}, locale = "en") click to toggle source

Does the email address match any of the given rules

# File lib/email_address.rb, line 64
def matches?(email_address, rules, config = {}, locale = "en")
  Address.new(email_address, config, locale).matches?(rules)
end
new(email_address, config = {}, locale = "en") click to toggle source

Creates an instance of this email address. This is a short-cut to EmailAddress::Address.new

# File lib/email_address.rb, line 51
def new(email_address, config = {}, locale = "en")
  Address.new(email_address, config, locale)
end
new_canonical(email_address, config = {}, locale = "en") click to toggle source
# File lib/email_address.rb, line 59
def new_canonical(email_address, config = {}, locale = "en")
  Address.new(Address.new(email_address, config, locale).canonical, config)
end
new_redacted(email_address, config = {}, locale = "en") click to toggle source
# File lib/email_address.rb, line 55
def new_redacted(email_address, config = {}, locale = "en")
  Address.new(Address.new(email_address, config, locale).redact)
end