Class: IsEmailAddressValidator
- Inherits:
-
ActiveModel::EachValidator
- Object
- ActiveModel::EachValidator
- IsEmailAddressValidator
- Defined in:
- lib/app/validators/is_email_address_validator.rb
Overview
usage:
in your model, add:
validates :email, :presence => true, :is_email_address => true;
taken from lindsaar.net/2010/1/31/validates_rails_3_awesome_is_true (It’s probably a fake regex but hey, it looks legit.)
Constant Summary collapse
- EmailAddress =
begin qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]' dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]' atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-' + '\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+' quoted_pair = '\\x5c[\\x00-\\x7f]' domain_literal = "\\x5b(?:#{dtext}|#{quoted_pair})*\\x5d" quoted_string = "\\x22(?:#{qtext}|#{quoted_pair})*\\x22" domain_ref = atom sub_domain = "(?:#{domain_ref}|#{domain_literal})" word = "(?:#{atom}|#{quoted_string})" domain = "#{sub_domain}(?:\\x2e#{sub_domain})*" local_part = "#{word}(?:\\x2e#{word})*" addr_spec = "#{local_part}\\x40#{domain}" pattern = /\A#{addr_spec}\z/ end
Instance Method Summary collapse
Instance Method Details
#error_message ⇒ Object
24 25 26 |
# File 'lib/app/validators/is_email_address_validator.rb', line 24 def "is not a valid email address." end |
#help_message ⇒ Object
28 29 30 |
# File 'lib/app/validators/is_email_address_validator.rb', line 28 def "Needs to be a valid email address." end |
#validate_each(record, attribute, value) ⇒ Object
32 33 34 35 36 |
# File 'lib/app/validators/is_email_address_validator.rb', line 32 def validate_each(record, attribute, value) unless value =~ EmailAddress record.errors[attribute] << ([:message] || ) end end |