class Kafo::DataTypes::Boolean

Public Class Methods

new(*permitted) click to toggle source
# File lib/kafo/data_types/boolean.rb, line 4
def initialize(*permitted)
  @permitted = permitted
end

Public Instance Methods

typecast(value) click to toggle source
# File lib/kafo/data_types/boolean.rb, line 8
def typecast(value)
  case value
    when '0', 'false', 'f', 'n', false
      false
    when '1', 'true', 't', 'y', true
      true
    else
      value
  end
end
valid?(input, errors = []) click to toggle source
# File lib/kafo/data_types/boolean.rb, line 19
def valid?(input, errors = [])
  (input.is_a?(::TrueClass) || input.is_a?(::FalseClass)).tap do |valid|
    errors << "#{input.inspect} is not a valid boolean" unless valid
  end

  unless @permitted.empty? || @permitted.include?(input)
    errors << "#{input} must be one of #{@permitted.join(', ')}"
  end

  return errors.empty?
end