MyApp.Cldr.Number.resolve_currencies
resolve_currencies
, go back to MyApp.Cldr.Number module for more information.
Resolve curencies from strings within a list.
Arguments
list
is any list in which currency names and symbols are expectedoptions
is a keyword list of options
Options
:locale
is any valid locale returned byCldr.known_locale_names/1
or aCldr.LanguageTag
struct returned byCldr.Locale.new!/2
The default isMyApp.Cldr.get_locale()
:only
is anatom
or list ofatoms
representing the currencies or currency types to be considered for a match. The equates to a list of acceptable currencies for parsing. See the notes below for currency types.:except
is anatom
or list ofatoms
representing the currencies or currency types to be not considered for a match. This equates to a list of unacceptable currencies for parsing. See the notes below for currency types.:fuzzy
is a float greater than0.0
and less than or equal to1.0
which is used as input toString.jaro_distance/2
to determine is the provided currency string is close enough to a known currency string for it to identify definitively a currency code. It is recommended to use numbers greater than0.8
in order to reduce false positives.
Notes
The :only
and :except
options accept a list of
currency codes and/or currency types. The following
types are recognised.
If both :only
and :except
are specified,
the :except
entries take priority - that means
any entries in :except
are removed from the :only
entries.
:all
, the default, considers all currencies:current
considers those currencies that have a:to
date of nil and which also is a known ISO4217 currency:historic
is the opposite of:current
:tender
considers currencies that are legal tender:unannotated
considers currencies that don't have "(some string)" in their names. These are usually financial instruments.
Examples
iex> MyApp.Cldr.Number.scan("100 US dollars")
...> |> MyApp.Cldr.Number.resolve_currencies
[100, :USD]
iex> MyApp.Cldr.Number.scan("100 eurosports")
...> |> MyApp.Cldr.Number.resolve_currencies(fuzzy: 0.75)
[100, :EUR]
iex> MyApp.Cldr.Number.scan("100 dollars des États-Unis")
...> |> MyApp.Cldr.Number.resolve_currencies(locale: "fr")
[100, :USD]