Class: ActiveModel::Validations::EmailValidator

Inherits:
EachValidator
  • Object
show all
Defined in:
lib/validates_as_email.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ EmailValidator

Returns a new instance of EmailValidator.



18
19
20
21
22
23
24
# File 'lib/validates_as_email.rb', line 18

def initialize(options)
  configuration = {
    :message   => (I18n.translate(:'activerecord.errors.messages.invalid_email', :raise => true) rescue 'is an invalid email address'),
    :allow_nil => false
  }
  super(options.reverse_merge(configuration))
end

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'lib/validates_as_email.rb', line 26

def validate_each(record, attribute, value)
  
  return if options[:allow_nil] && value.nil?
  return if options[:allow_blank] && value.blank?
  
  unless value =~ /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
    record.errors[attribute] << (options[:message])
    return
  end
end