Cldr v0.1.2 Cldr.Currency
Defines a currency structure and a set of functions to manage the validity of a currency code and to return metadata for currencies.
Summary
Functions
Returns the currency metadata for the requested currency code
Returns the currency metadata for a locale
Returns a list of all known currency codes
Returns a boolean indicating if the supplied currency code is known
Normalizes the representation of a currency code
Normalizes the representation of a currency code using normalize_currency_code/1
but raises an exception if the code is known to be invalid. Note that this function
does not conclusively detect invalid currency codes and is not intended to
Returns a normalized currency code if the code is valid or an error tuple if not
Types
Functions
Returns the currency metadata for the requested currency code.
currency_codeis abinaryoratomrepresentation of an ISO 4217 currency code.
Examples
iex> Cldr.Currency.for_code("AUD")
%Cldr.Currency{cash_digits: 2, cash_rounding: 0, code: "AUD",
count: %{one: "Australian dollar", other: "Australian dollars"},
digits: 2, name: "Australian Dollar", narrow_symbol: "$",
rounding: 0, symbol: "A$", tender: true}
iex> Cldr.Currency.for_code("THB")
%Cldr.Currency{cash_digits: 2, cash_rounding: 0, code: "THB",
count: %{one: "Thai baht", other: "Thai baht"}, digits: 2,
name: "Thai Baht", narrow_symbol: "฿", rounding: 0, symbol: "THB",
tender: true}
Returns the currency metadata for a locale.
Returns a list of all known currency codes.
Example
iex> Cldr.Currency.known_currencies |> Enum.count
298
Returns a boolean indicating if the supplied currency code is known.
currency_codeis abinaryoratomrepresenting an ISO4217 currency code
Examples
iex> Cldr.Currency.known_currency? "AUD"
true
iex> Cldr.Currency.known_currency? "GGG"
false
Normalizes the representation of a currency code.
currency_codeis anybinaryoratomrepresentation of an ISO4217 currency code.
The normalized form is an ISO4217 code in an upper case atom form.
binary forms of currency_code are only every converted
to an atom using String.to_existing_atom/1. Since all known currencies
are loaded at compile time, we can detect invalid currencies in these
cases - the third example below is one such instance.
Note that normalize_currency_code only normalizes the currency
code. For checking the validiting of a currency code, use known_currency?/1.
Examples:
iex> Cldr.Currency.normalize_currency_code "USD"
:USD
iex> Cldr.Currency.normalize_currency_code :usd
:USD
iex> Cldr.Currency.normalize_currency_code "NADA"
{:error, {Cldr.UnknownCurrencyError, "Currency \"NADA\" is not known"}}
iex> Cldr.Currency.normalize_currency_code :ABC
:ABC
Normalizes the representation of a currency code using normalize_currency_code/1
but raises an exception if the code is known to be invalid. Note that this function
does not conclusively detect invalid currency codes and is not intended to.
currency_codeis anybinaryoratomrepresentation of an ISO4217 currency code.
The normalized form is an ISO4217 code in an upper case atom form.
Example:
Cldr.Currency.normalize_currency_code! "ABC"
** (Cldr.UnknownCurrencyError) Currency "ABC" is not known
(ex_cldr) lib/cldr/currency.ex:146: Cldr.Currency.normalize_currency_code!/1
Returns a normalized currency code if the code is valid or an error tuple if not.
Similar to the function known_currency/1 but whereas that function returns a
boolean result, this function returns the normalized currency code if the
argument is valid.
Examples
iex> Cldr.Currency.validate_currency_code :usd
:USD
iex> Cldr.Currency.validate_currency_code "usd"
:USD
iex> Cldr.Currency.validate_currency_code "USD"
:USD
iex> Cldr.Currency.validate_currency_code "NOPE"
{:error, {Cldr.UnknownCurrencyError, "Currency \"NOPE\" is not known"}}
iex> Cldr.Currency.validate_currency_code :ABC
{:error, {Cldr.UnknownCurrencyError, "Currency :ABC is not known"}}