lib/validators/nullable.ex
defmodule Veli.Validators.Nullable do
@moduledoc """
Nullable validator.
## Example
rule = [type: :integer, nullable: true]
Veli.valid(2, rule) # valid
Veli.valid(nil, rule) # valid
Veli.valid(4.2, rule) # not valid
"""
@spec valid?(any, boolean) :: boolean | nil
def valid?(value, nullable) when is_nil(value) do
if nullable === true do
nil
else
false
end
end
def valid?(_value, _rule) do
true
end
end