class HaveAPI::Validators::Presence

Checks the value is present and not empty.

Short form:

string :param, required: true

Full form:

string :param, required: {
  empty: true/false,
  message: 'the error message'
}

Public Instance Methods

describe() click to toggle source
# File lib/haveapi/validators/presence.rb, line 28
def describe
  {
    empty: @empty,
    message: @message
  }
end
setup() click to toggle source
# File lib/haveapi/validators/presence.rb, line 18
def setup
  return useless if simple? && !take

  @empty = take(:empty, false)
  @message = take(
    :message,
    @empty ? 'must be present' : 'must be present and non-empty'
  )
end
valid?(v) click to toggle source
# File lib/haveapi/validators/presence.rb, line 35
def valid?(v)
  return false if v.nil?
  return !v.strip.empty? if !@empty && v.is_a?(::String)

  # FIXME: other data types?
  true
end