Sha256: 899a0c473223e7a54f41e545b41c25aff112631793c68f749bb575e3cd0bff60

Contents?: true

Size: 1.21 KB

Versions: 254

Compression:

Stored size: 1.21 KB

Contents

# -*- encoding : binary -*-
# == usage:
# in your model, add:
#  validates :email, :presence => true, :is_email_address => true;
# taken from http://lindsaar.net/2010/1/31/validates_rails_3_awesome_is_true
# (It's probably a fake regex but hey, it looks legit.)
class IsEmailAddressValidator < ActiveModel::EachValidator
  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

  def error_message
    "is not a valid email address."
  end
  
  def validate_each(record, attribute, value)
    unless value =~ EmailAddress
      record.errors[attribute] << (options[:message] || error_message )
    end
  end

end

Version data entries

254 entries across 254 versions & 1 rubygems

Version Path
inline_forms-6.2.14 app/validators/is_email_address_validator.rb
inline_forms-6.2.12 app/validators/is_email_address_validator.rb
inline_forms-6.2.11 app/validators/is_email_address_validator.rb
inline_forms-6.2.10 app/validators/is_email_address_validator.rb
inline_forms-6.2.9 app/validators/is_email_address_validator.rb
inline_forms-6.2.7 app/validators/is_email_address_validator.rb
inline_forms-6.2.6 app/validators/is_email_address_validator.rb
inline_forms-6.2.5 app/validators/is_email_address_validator.rb
inline_forms-6.2.4 app/validators/is_email_address_validator.rb
inline_forms-6.2.3 app/validators/is_email_address_validator.rb
inline_forms-6.2.2 app/validators/is_email_address_validator.rb
inline_forms-6.2.1 app/validators/is_email_address_validator.rb
inline_forms-6.1.1 app/validators/is_email_address_validator.rb
inline_forms-6.1.0 app/validators/is_email_address_validator.rb
inline_forms-6.0.8 app/validators/is_email_address_validator.rb
inline_forms-6.0.7 app/validators/is_email_address_validator.rb
inline_forms-6.0.6 app/validators/is_email_address_validator.rb
inline_forms-6.0.5 app/validators/is_email_address_validator.rb
inline_forms-6.0.4 app/validators/is_email_address_validator.rb
inline_forms-6.0.3 app/validators/is_email_address_validator.rb