Class: SimpleValidate::ValidatesInclusionOf

Inherits:
ValidatesBase show all
Defined in:
lib/simple_validate/validates_inclusion_of.rb

Instance Attribute Summary

Attributes inherited from ValidatesBase

#attribute, #condition, #message

Instance Method Summary collapse

Constructor Details

#initialize(attribute, options) ⇒ ValidatesInclusionOf

Returns a new instance of ValidatesInclusionOf.

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
13
# File 'lib/simple_validate/validates_inclusion_of.rb', line 5

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 inclusion rules", options[:if] || proc { true })
end

Instance Method Details

#valid?(instance) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
# File 'lib/simple_validate/validates_inclusion_of.rb', line 15

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

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

  @set.to_a.include?(val)
end