class ReeMapper::Bool

def cast(value, role: nil)

def cast(value, role: nil)
  if TRUE_CAST_VALUES.include?(value)
    true
  elsif FALSE_CAST_VALUES.include?(value)
    false
  else
    raise ReeMapper::CoercionError, "should be a boolean"
  end
end

def db_dump(value, role: nil)

def db_dump(value, role: nil)
  serialize(value, role: role)
end

def db_load(value, role: nil)

def db_load(value, role: nil)
  cast(value, role: role)
end

def serialize(value, role: nil)

def serialize(value, role: nil)
  if value.is_a?(TrueClass) || value.is_a?(FalseClass)
    value
  else
    raise ReeMapper::TypeError, 'should be a boolean'
  end
end