class ReeMapper::Bool

def cast(value)

def cast(value)
  if TRUE_CAST_VALUES.include?(value)
    true
  elsif FALSE_CAST_VALUES.include?(value)
    false
  else
    raise ReeMapper::CoercionError.new("is invalid boolean, got `#{truncate(value.inspect)}`")
  end
end

def db_dump(value)

def db_dump(value)
  serialize(value)
end

def db_load(value)

def db_load(value)
  cast(value)
end

def serialize(value)

def serialize(value)
  if value.is_a?(TrueClass) || value.is_a?(FalseClass)
    value
  else
    raise ReeMapper::TypeError.new("should be a boolean, got `#{truncate(value.inspect)}`")
  end
end