Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bombsimon/elixir-personnummer

🔢 Validate Swedish personal identity numbers
https://github.com/bombsimon/elixir-personnummer

elixir personnummer

Last synced: 1 day ago
JSON representation

🔢 Validate Swedish personal identity numbers

Awesome Lists containing this project

README

        

# Personnummer

Validate Swedish [personal identity
numbers](https://en.wikipedia.org/wiki/Personal_identity_number_(Sweden)) with
[Elixir](https://elixir-lang.org/).

## Usage

### Just validation

```elixir
iex(1)> Personnummer.valid?("19900101-0017")
true
```

### Validation and additional information

```elixir
iex(1)> {:ok, pnr} = Personnummer.new("19900101-0017")
{:ok,
%Personnummer{
control: 7,
coordination: false,
date: ~D[1990-01-01],
separator: "-",
serial: 1
}}
iex(2)> Personnummer.valid?(pnr)
true
iex(3)> gender = if Personnummer.is_female?(pnr) do "female" else "male" end
"male"
iex(4)> IO.puts "The person with personal identity number #{Personnummer.format(pnr)} is a #{gender} of age #{Personnummer.get_age(pnr)}"
The person with personal identity number 900101-0017 is a male of age 30
:ok
```

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `personnummer` to your list of dependencies in `mix.exs`:

```elixir
def deps do
[
{:personnummer, "~> 3.0.0"}
]
end
```

Documentation can be generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
be found at [https://hexdocs.pm/personnummer](https://hexdocs.pm/personnummer).

## Testing

Use `mix test` to run doctests and unit tests.

## Documentation

Documentation can be found at
[bombsimon.github.io/elixir-personnummer](https://bombsimon.github.io/elixir-personnummer/).
To generate new documentation, run

```sh
mix docs -f html -o docs
```