Module: CMDx::Validators::Inclusion
Overview
Validates that a value is within an enumerable or ‘Range`. Range uses `#cover?`; other enumerables use `===` (so regex/class matchers work).
Instance Method Summary collapse
Instance Method Details
#call(value, options = EMPTY_HASH) ⇒ Validators::Failure?
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/cmdx/validators/inclusion.rb', line 20 def call(value, = EMPTY_HASH) values = [:in] || [:within] raise ArgumentError, "inclusion validator requires :in or :within option" if values.nil? if values.is_a?(Range) within_failure(values.begin, values.end, ) unless values.cover?(value) elsif Array(values).none? { |v| v === value } of_failure(values, ) end end |