Packages

Library for NIP number.

Current section

Files

Jump to
ex_nip lib ex_nip.ex
Raw

lib/ex_nip.ex

defmodule ExNip do
@moduledoc """
Library for NIP number.
* `ExNip.valid?/1` - you can check if NIP number is valid
More about NIP number:
* [Wikipedia PL](https://pl.wikipedia.org/wiki/NIP)
"""
alias ExNip.Nip
@doc """
Is NIP number valid?
NIP is valid when:
* length of it is 10 digits
* or length of it is 13 with mask "000-000-00-00" or "000-00-00-000"
* last digit is proper checksum for first nine digits
For example:
iex> ExNip.valid?("1060000062")
true
iex> ExNip.valid?("106-00-00-062")
true
iex> ExNip.valid?("106-000-00-62")
true
iex> ExNip.valid?("1234567890")
false
iex> ExNip.valid?("1060000061")
false
iex> ExNip.valid?("10-600-00-062")
false
iex> ExNip.valid?("123")
false
iex> ExNip.valid?("12321212121212121212")
false
iex> ExNip.valid?("some really bad data")
false
"""
@spec valid?(String.t()) :: boolean()
defdelegate valid?(nip), to: Nip
end