Sha256: a56e7f9544f98a792d1ad4c2465beb3d143525bc15713e3826e5ca3259dfb314

Contents?: true

Size: 512 Bytes

Versions: 2

Compression:

Stored size: 512 Bytes

Contents

require 'active_model_validators_ex/array_validator_base'

class ArrayInclusionValidator < ArrayValidatorBase
  def initialize(options)
    unless options[:in].is_a?(Array) or options[:in].is_a?(Range)
      raise ArgumentError,
            'value for in must be either a Range or Array'
    end

    super(options)
  end

  def custom_validations(record, attribute, value)
    unless value.all? { |val| options[:in].include?(val) }
      record.errors.add(attribute, :array_inclusion, options)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_model_validators_ex-1.0.0 lib/active_model_validators_ex/array_inclusion_validator.rb
active_model_validators_ex-0.3.2 lib/active_model_validators_ex/array_inclusion_validator.rb