class HaveAPI::Validators::Inclusion

Checks that the value is from given set of allowed values.

Short form:

string :param, choices: %i(one two three)

Full form:

string :param, choices: {
  values: %i(one two three),
  message: 'the error message'
}

Option ‘choices` is an alias to `include`.

Public Instance Methods

describe() click to toggle source
# File lib/haveapi/validators/inclusion.rb, line 37
def describe
  {
    values: @values,
    message: @message
  }
end
setup() click to toggle source
# File lib/haveapi/validators/inclusion.rb, line 20
def setup
  values = simple? ? take : take(:values)

  if values.is_a?(::Hash)
    @values = {}

    values.each do |k, v|
      @values[k.is_a?(::Symbol) ? k.to_s : k] = v
    end

  else
    @values = values.map { |v| v.is_a?(::Symbol) ? v.to_s : v }
  end

  @message = take(:message, '%{value} cannot be used')
end
valid?(v) click to toggle source
# File lib/haveapi/validators/inclusion.rb, line 44
def valid?(v)
  if @values.is_a?(::Hash)
    @values.has_key?(v)

  else
    @values.include?(v)
  end
end