class EmailAddress::ActiveRecordValidator

ActiveRecord validator class for validating an email address with this library. Note the initialization happens once per process.

Usage:

validates_with EmailAddress::ActiveRecordValidator, field: :name

Options:

Default field: :email or :email_address (first found)

Public Class Methods

new(options = {}) click to toggle source
# File lib/email_address/active_record_validator.rb, line 18
def initialize(options = {})
  @opt = options
end

Public Instance Methods

validate(r) click to toggle source
# File lib/email_address/active_record_validator.rb, line 22
def validate(r)
  if @opt[:fields]
    @opt[:fields].each { |f| validate_email(r, f) }
  elsif @opt[:field]
    validate_email(r, @opt[:field])
  elsif r.respond_to? :email
    validate_email(r, :email)
  elsif r.respond_to? :email_address
    validate_email(r, :email_address)
  end
end
validate_email(r, f) click to toggle source
# File lib/email_address/active_record_validator.rb, line 34
def validate_email(r, f)
  return if r[f].nil?
  e = Address.new(r[f])
  unless e.valid?
    error_message = @opt[:message] ||
      Config.error_message(:invalid_address, I18n.locale.to_s) ||
      "Invalid Email Address"
    r.errors.add(f, error_message)
  end
end