Class: ArrayInclusionValidator

Inherits:
ArrayValidatorBase show all
Defined in:
lib/active_model_validators_ex/array_inclusion_validator.rb

Instance Method Summary collapse

Methods inherited from ArrayValidatorBase

#validate_each

Constructor Details

#initialize(options) ⇒ ArrayInclusionValidator

Returns a new instance of ArrayInclusionValidator.



4
5
6
7
8
9
10
11
12
# File 'lib/active_model_validators_ex/array_inclusion_validator.rb', line 4

def initialize(options)
  unless options.key?(:in) &&
         (options[:in].is_a?(Array) ||
          options[:in].is_a?(Range))
    raise 'key in must be present, and value must be either a Range or Array'
  end

  super(options)
end

Instance Method Details

#custom_validations(record, attribute, value) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/active_model_validators_ex/array_inclusion_validator.rb', line 14

def custom_validations(record, attribute, value)
  unless value.all? { |val| options[:in].include?(val) }
    record.errors[attribute] <<
      "attribute #{attribute} has be an array composed of values " \
      "#{options[:in]}"
  end
end