Sha256: 35ec108f53d238260bfb2b9937c2aae1a4c01e85c342826648b5644e67e5b25e

Contents?: true

Size: 556 Bytes

Versions: 1

Compression:

Stored size: 556 Bytes

Contents

# frozen_string_literal: true

module SimpleValidate
  class ValidatesExclusionOf < ValidatesBase
    def initialize(attribute, options)
      @set = options[:in]
      @allow_nil = options[:allow_nil]

      raise ArgumentError unless [Array, Range].include?(@set.class)

      super(attribute, options[:message] ||
        "breaks exclusion rules", options[:if] || proc { true })
    end

    def valid?(instance)
      val = instance.send(attribute)

      return true if val.nil? && @allow_nil == true

      !@set.to_a.include?(val)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple_validate-2.2.2 lib/simple_validate/validates_exclusion_of.rb