Method: Sequel::Plugins::ValidationClassMethods::ClassMethods#validates_inclusion_of

Defined in:
lib/sequel/plugins/validation_class_methods.rb

#validates_inclusion_of(*atts) ⇒ Object

Validates that an attribute is within a specified range or set of values.

Possible Options:

:in

An array or range of values to check for validity (required)

:message

The message to use (default: ‘is not in range or set: <specified range>’)


337
338
339
340
341
342
343
344
345
346
347
348
349
# File 'lib/sequel/plugins/validation_class_methods.rb', line 337

def validates_inclusion_of(*atts)
  opts = extract_options!(atts)
  n = opts[:in]
  unless n && (n.respond_to?(:cover?) || n.respond_to?(:include?))
    raise ArgumentError, "The :in parameter is required, and must respond to cover? or include?"
  end
  opts[:message] ||= "is not in range or set: #{n.inspect}"
  reflect_validation(:inclusion, opts, atts)
  atts << opts
  validates_each(*atts) do |o, a, v|
    o.errors.add(a, opts[:message]) unless n.public_send(n.respond_to?(:cover?) ? :cover? : :include?, v)
  end
end