Class: PoroValidator::Validators::InclusionValidator

Inherits:
RangeArrayValidator show all
Defined in:
lib/poro_validator/validators/inclusion_validator.rb

Overview

Since:

  • 0.0.1

Instance Attribute Summary

Attributes inherited from BaseClass

#attribute

Instance Method Summary collapse

Methods inherited from RangeArrayValidator

#covered?, #included?, #validate_option

Methods inherited from BaseClass

#__validate__, #context, #errors, #initialize, #nested?, #options, #value

Constructor Details

This class inherits a constructor from PoroValidator::Validators::BaseClass

Instance Method Details

#validate(attribute, value, options) ⇒ Object

Since:

  • 0.0.1



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/poro_validator/validators/inclusion_validator.rb', line 4

def validate(attribute, value, options)
  return if value.nil?

  in_option = options[:in]

  unless validate_option(in_option)
    raise ::PoroValidator::InvalidValidator,
      [
        "There was no range or array specified. Pass in a range or array.",
        "e.g",
        "validates :foo, inclusion: 1..10",
        "or",
        "validates :boo, inclusion: { in: 1..10 }"
    ].join("\n")
  end

  message = options.fetch(:message, :inclusion)

  unless covered?(in_option, value) || included?(in_option, value)
    errors.add(attribute, message, in_option)
  end
end