Sha256: baf4d42e56d27628e2b42c2473c1d6e51e00542789ccef85da5f7bc438f1864a

Contents?: true

Size: 621 Bytes

Versions: 2

Compression:

Stored size: 621 Bytes

Contents

require 'active_model_validators_ex/array_validator_base'

class ArrayInclusionValidator < ArrayValidatorBase
  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

  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
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_model_validators_ex-0.3.1 lib/active_model_validators_ex/array_inclusion_validator.rb
active_model_validators_ex-0.3.0 lib/active_model_validators_ex/array_inclusion_validator.rb