class InputSanitizer::V1::BooleanConverter

Constants

BOOLEAN_MAP

Public Instance Methods

call(value) click to toggle source
# File lib/input_sanitizer/v1/default_converters.rb, line 71
def call(value)
  if BOOLEAN_MAP.has_key?(value)
    BOOLEAN_MAP[value]
  else
    truthy, falsy = BOOLEAN_MAP.partition { |_, value| value }
    truthy = truthy.map { |e| "'#{e[0]}'" }.uniq
    falsy = falsy.map { |e| "'#{e[0]}'" }.uniq

    message = "Invalid boolean: use "
    message += truthy.join(", ")
    message += " for true, or "
    message += falsy.join(", ")
    message += " for false."
    raise InputSanitizer::ConversionError.new(message)
  end
end