Sha256: dca20a3674e3626ef9166d53a4e0898906443274224eb9fe82b3d222f67d21a2

Contents?: true

Size: 701 Bytes

Versions: 138

Compression:

Stored size: 701 Bytes

Contents

# frozen_string_literal: true

module Spree
  module Validations
    ##
    # Validates a field based on the maximum length of the underlying DB field, if there is one.
    class DbMaximumLengthValidator < ActiveModel::Validator
      def initialize(options)
        super
        @field = options[:field].to_s
        raise ArgumentError.new("a field must be specified to the validator") if @field.blank?
      end

      def validate(record)
        limit = record.class.columns_hash[@field].limit
        value = record[@field.to_sym]
        if value && limit && value.to_s.length > limit
          record.errors.add(@field.to_sym, :too_long, count: limit)
        end
      end
    end
  end
end

Version data entries

138 entries across 138 versions & 2 rubygems

Version Path
solidus_core-4.5.1 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.5.0 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.3.6 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.2.5 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.1.6 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.4.2 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.4.1 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.4.0 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.3.4 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.2.4 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.1.5 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.3.3 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.3.2 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.1.4 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.3.1 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.3.0 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.2.3 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.1.3 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-4.0.4 app/models/spree/validations/db_maximum_length_validator.rb
solidus_core-3.4.6 app/models/spree/validations/db_maximum_length_validator.rb