Sha256: b02788bfc85ebf8c4ef214e4e1ccd3fdf98c7a47c0f4c30186763646f64c3f03

Contents?: true

Size: 596 Bytes

Versions: 6

Compression:

Stored size: 596 Bytes

Contents

# frozen_string_literal: true

module Spree
  # == An ActiveModel Email Validator
  #
  # === Usage
  #
  #     require 'spree/core/validators/email'
  #
  #     class Person < ApplicationRecord
  #       validates :email_address, 'spree/email' => true
  #     end
  #
  class EmailValidator < ActiveModel::EachValidator
    EMAIL_REGEXP = /\A([^@\.]|[^@\.]([^@\s]*)[^@\.])@([^@\s]+\.)+[^@\s]+\z/

    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

6 entries across 6 versions & 1 rubygems

Version Path
solidus_core-3.0.3 lib/spree/core/validators/email.rb
solidus_core-3.1.3 lib/spree/core/validators/email.rb
solidus_core-3.1.2 lib/spree/core/validators/email.rb
solidus_core-3.1.1 lib/spree/core/validators/email.rb
solidus_core-3.1.0 lib/spree/core/validators/email.rb
solidus_core-3.0.2 lib/spree/core/validators/email.rb