Sha256: f650e7e6b1f8e1c23dca8e15bc05f9a4e35c4b6bdc10f101c4d4c4004d7fbc98
Contents?: true
Size: 904 Bytes
Versions: 3
Compression:
Stored size: 904 Bytes
Contents
module Validatious module Validators # == Active Model Email Validator class EmailValidator < ActiveModel::EachValidator SPECIALCHARS = Regexp.escape('!#$%&\'*-/=?+-^_`{|}~') PARTUNQUOTED = '(([[:alnum:]' + SPECIALCHARS + ']+[\.\+]+))*[[:alnum:]' + SPECIALCHARS + '+]+' PARTQUOTED = '\"(([[:alnum:]' + SPECIALCHARS + '\.\+]*|(\\\\[\u0001-\uFFFF]))*)\"' REGEX = Regexp.new('^((' + PARTUNQUOTED + ')|(' + PARTQUOTED + ')+)@(((\w+\-+)|(\w+\.))*\w{1,63}\.[a-z]{2,6}$)', Regexp::EXTENDED | Regexp::IGNORECASE) def validate_each(record, attribute, value) record.errors.add(attribute, :invalid_email, options) if value.to_s !~ REGEX end end end end # Compatibility with ActiveModel validates method which matches option keys to their validator class ActiveModel::Validations::EmailValidator = Validatious::Validators::EmailValidator
Version data entries
3 entries across 3 versions & 1 rubygems