Packages

Money functions for operations on and localization of a money data type with support for ISO 4217 currencies and ISO 24165 digial tokens (crypto currencies).

Current section

Files

Jump to
ex_money lib money protocol inspect.ex
Raw

lib/money/protocol/inspect.ex

defimpl Inspect, for: Money do
import Money, only: [is_digital_token: 1]
def inspect(%Money{currency: token_id} = money, opts) when is_digital_token(token_id) do
{:ok, short_name} = DigitalToken.short_name(token_id)
money
|> Map.put(:currency, short_name)
|> do_inspect(opts)
end
def inspect(money, opts) do
do_inspect(money, opts)
end
def do_inspect(%Money{format_options: []} = money, _opts) do
"Money.new(#{inspect(money.currency)}, #{inspect(Decimal.to_string(money.amount))})"
end
def do_inspect(money, _opts) do
format_options =
money.format_options
|> inspect()
|> String.trim_leading("[")
|> String.trim_trailing("]")
"Money.new(#{inspect(money.currency)}, #{inspect(Decimal.to_string(money.amount))}, #{format_options})"
end
end