Packages

A library to validate passwords, with built-in validators for password length as well as the character sets used. Custom validators can also be created.

Current section

Files

Jump to
password_validator lib password_validator validator.ex
Raw

lib/password_validator/validator.ex

defmodule PasswordValidator.Validator do
@moduledoc """
Specifies the behaviour needed to implement a custom (or built-in) validator.
"""
@doc """
Validate the given string and return `:ok` or `{:error, errors}` where
`errors` is a list.
"""
@callback validate(String.t, list()) :: :ok | {:error, nonempty_list()}
@spec return_errors_or_ok(list()) :: :ok | {:error, nonempty_list()}
def return_errors_or_ok(results) do
errors = for {:error, reason} <- results, do: reason
if length(errors) == 0 do
:ok
else
{:error, errors}
end
end
end