Releases: kipcole9/money
Ex Money version 5.24.2
Bug Fixes
- Fix deprecated map.field notation in Money.parse_decimal/4. Thanks to @oliver-kriska for the PR. Closes #191.
Ex Money version 5.24.1
Bug Fixes
- Fixes casting a binary currency code that is both a valid ISO4217 currency code and a valid digital currency short code (for example, "TRY"). Precedence is given to returning the ISO4217 code (this was not the case in v5.24.0).
Ex Money version 5.24.0
Bug Fixes
-
Fixes compile warnings on Elixir 1.20.
-
Fix examples in README.md to align with the current
inspect/2output. Thanks very much to @carlgleisner for the PR (and apologies for the long delayed merge). Closes #188.
Enhancements
-
Add
Money.spread/3to proptionally allocate (that is, spread) am money amount amongst a list of amounts or integers. Thanks to @jdewar for the PR and great patience. Closes #175. -
Add support for custom currency codes. A custom currency code is created with
Cldr.Currency.new/2and is distinguised from an ISO4217 code by being at least 4 characters long (ISO4217 codes are always 3 characters long). The first character must be a Latin alphabetic character. The additional characters must be Latin alphanumeric characters.
Ex Money version 5.23.0
Enhancements
- Adds
Money.sum!/2. Thanks to @andreas-ementio for the PR. Closes #187.
Ex Money version 5.22.0
Enhancements
- Adds
Money.Subscription.Plan.to_string/2to return a localized string representation of a subscription plan. The implementation is conditional on ex_cldr_units being configured as a dependency inmix.exsandCldr.Unitbeing added as a provider in the CLDR backend module. Thanks to @peaceful-james for the suggestion. Closes #186.
Ex Money version 5.21.0
Enhancements
- Add
JSON.Encoderimplementation to support serializing money types with Elixir's JSON module. Thanks to @jfpedroza for the PR. Closes #182.
Ex Money version 5.20.0
Soft Deprecation
- The option
:fractional_digitsforMoney.from_integer/3has been deprecated in favour of:currency_digitsfor consistency withMoney.round/2and functions in ex_cldr_numbers.:fractional_digitswill continue to be supported for an indefinite period.
Bug Fixes
-
Ensure
Money.split/3always returns a remainder that is greater than or equal to 0. Thanks to @jdewar for the report and @coladarci, @Wigny for their collaboration. Closes #173. -
Allow a non-breaking-space to be part of a number string. Some locales (like
en-ZA) will format numbers with a nbsp when using standard separators for that locale. -
Fix documentation for
Money.ExchangeRatesreplacing:exchange_rate_servicewith:auto_start_exchange_rate_service. Thanks to @cw789 for the PR. Closes #174.
Enhancements
-
Update to CLDR 47 data including update to ISO 4217 currency information.
-
Support passing rounding options to
Money.split/3.
Ex Money version 5.19.2
Bug Fixes
-
Fix using Elixir 1.18's JSON module in
ex_money(specifically decoding exchange rates). Thanks to @allenwyma and @maikelthedev for the report. Closes #176. -
Document
currency_symbol: :noneoption forMoney.to_string/2. This option formats the money amount without a currency symbol. This may be useful for UI forms that separate the currency and the amount for input. Requires ex_cldr_numbers version 2.33.6 or later. -
Fix parsing money strings that contain trailing RTL markers. Requires ex_cldr_currencies version 2.16.4 or later.
Ex Money version 5.19.1
Bux Fixes
- Fixes
Money.within/3whenminandmaxare the same. Thanks to @joewunderlich for the report. Closes #177.
Ex Money version 5.19.0
Deprecations
Money.default_backend/0is soft deprecated in favor ofMoney.default_backend!/0whose naming better expresses the side effect of an exception being raised if no default backend is configured.
Bug Fixes
- Surface an error exception if, when starting the exchange rates service, no
Money.default_backend!/0is configured.