defmodule BetterNumber do
@moduledoc """
`BetterNumber` provides functions to convert numbers into a variety of different formats.
"""
@type t :: number() | Decimal.t()
@doc false
defmacro __using__(_) do
quote do
import BetterNumber.Currency
import BetterNumber.Delimit
import BetterNumber.Phone
import BetterNumber.Percentage
import BetterNumber.Human
end
end
@doc """
Converts number to currency
"""
defdelegate to_currency(number, opts \\ %{}),
to: BetterNumber.Currency,
as: :number_to_currency
@doc """
Delimits number with seprator
"""
defdelegate to_delimited(number, opts \\ %{}),
to: BetterNumber.Delimit,
as: :number_to_delimited
@doc """
Converts number to phone number format
"""
defdelegate to_phone(number, opts \\ %{}),
to: BetterNumber.Phone,
as: :number_to_phone
@doc """
Converts number to percentage
"""
defdelegate to_percentage(number, opts \\ %{}),
to: BetterNumber.Percentage,
as: :number_to_percentage
@doc """
Converts number to specified units
"""
defdelegate to_human(number, opts \\ %{}),
to: BetterNumber.Human,
as: :number_to_human
@doc """
Converts number to english ordinal.
"""
defdelegate to_ordinal(number),
to: BetterNumber.Human,
as: :number_to_ordinal
end