class EmailValidator

Checks if the value of an attribute is a valid email address.

@example Validate that the user email is a valid email address.

class User << ActiveRecord::Base
  attr_accessor :email, :name
  validates :email, email: true
end

Constants

EMAIL_FORMAT

Private Instance Methods

valid?(email, options) click to toggle source
# File lib/missing_validators/validators/email_validator.rb, line 13
def valid?(email, options)
  validate_format(email) && \
    validate_domain(email, *options[:domain])
end
validate_domain(email, *domains) click to toggle source
# File lib/missing_validators/validators/email_validator.rb, line 22
def validate_domain(email, *domains)
  return true if domains.blank?

  email_downcased = email.to_s.downcase

  domains.any? do |domain|
    domain = domain.to_s.downcase
    domain = "@#{domain}" unless domain.start_with?('.')

    email_downcased.end_with?(domain)
  end
end
validate_format(email) click to toggle source
# File lib/missing_validators/validators/email_validator.rb, line 18
def validate_format(email)
  (email =~ EMAIL_FORMAT).present?
end