Sha256: 270a77dcb5c283c22b027f29ebdb01fdd28372f7adc7617a9fc6a505b54555d8

Contents?: true

Size: 568 Bytes

Versions: 60

Compression:

Stored size: 568 Bytes

Contents

# frozen_string_literal: true

module Ibrain
  # == An ActiveModel Email Validator
  #
  # === Usage
  #
  #     require 'ibrain/core/validators/email'
  #
  #     class Person < ApplicationRecord
  #       validates :email_address, 'ibrain/email' => true
  #     end
  #
  class EmailValidator < ActiveModel::EachValidator
    EMAIL_REGEXP = URI::MailTo::EMAIL_REGEXP

    def validate_each(record, attribute, value)
      unless EMAIL_REGEXP.match? value
        record.errors.add(attribute, :invalid, **{ value: value }.merge!(options))
      end
    end
  end
end

Version data entries

60 entries across 60 versions & 1 rubygems

Version Path
ibrain-core-0.5.15 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.13 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.12 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.10 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.9 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.8 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.7 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.6 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.5 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.4 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.3 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.2 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.1 lib/ibrain/core/validators/email.rb
ibrain-core-0.5.0 lib/ibrain/core/validators/email.rb
ibrain-core-0.4.9 lib/ibrain/core/validators/email.rb
ibrain-core-0.4.8 lib/ibrain/core/validators/email.rb
ibrain-core-0.4.7 lib/ibrain/core/validators/email.rb
ibrain-core-0.4.5 lib/ibrain/core/validators/email.rb
ibrain-core-0.4.4 lib/ibrain/core/validators/email.rb
ibrain-core-0.4.3 lib/ibrain/core/validators/email.rb