Class: AmazonFnskuValidator

Inherits:
ActiveModel::EachValidator
  • Object
show all
Defined in:
app/validators/amazon_fnsku_validator.rb

Overview

app/validators/amazon_fnsku_validator.rb

Constant Summary collapse

FNSKU_REGEX =
/\AX[A-Z0-9]{9}\z/
MESSAGE =
"must start with 'X' and be followed by 9 alphanumeric characters"

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.valid?(fnsku) ⇒ Boolean

Optional: Add a class method for direct validation

Returns:

  • (Boolean)


15
16
17
# File 'app/validators/amazon_fnsku_validator.rb', line 15

def self.valid?(fnsku)
  fnsku.present? && fnsku.match?(FNSKU_REGEX)
end

Instance Method Details

#validate_each(record, attribute, value) ⇒ Object



6
7
8
9
10
11
12
# File 'app/validators/amazon_fnsku_validator.rb', line 6

def validate_each(record, attribute, value)
  return if value.blank? && options[:allow_nil]

  return if self.class.valid?(value)

  record.errors.add(attribute, options[:message] || MESSAGE)
end