View Source HumanName
Elixir wrapper for David Judd's excellent human-name crate implemented as a BEAM-friendly Rust NIF.
The API implemented for use in Elixir/Erlang does not cover every aspect of the Rust library. Feel free to open a PR for contributions.
Installation
This package can be installed by adding human_name
to your list of dependencies in mix.exs
:
def deps do
[
{:human_name, "~> 0.5.0"}
]
end
By default you do not need Rust installed because the lib will try to download a precompiled NIF file.
In case you want to force compilation set the
HUMAN_NAME_BUILD
environment variable to true
or 1
.
To run tests locally, you could do a HUMAN_NAME_BUILD=1 mix test
.
Alternatively you can also set the application env :build_from_source
to true
in order to force the build:
config :human_name, HumanName, build_from_source: true
Usage
iex> HumanName.first_name("Dr. Alibaster Cornelius Juniper III")
{:ok, "Alibaster"}
iex> HumanName.initials("Dr. Alibaster Cornelius Juniper III")
{:ok, "AJ"}
iex> HumanName.last_name("Dr. Alibaster Cornelius Juniper III")
{:ok, "Juniper"}
iex> HumanName.normalize("Dr. Alibaster Cornelius Juniper III")
{:ok, "Alibaster Juniper"}
iex> HumanName.normalize_full("JIMMY H JENKINS")
{:ok, "Jimmy H. Jenkins"}
License
MIT License
See the license file for details.