Releases: kipcole9/money
Money version 5.4.0
Enhancements
- Add support for CLDR 38
Money version 5.3.1
Bug Fixes
- Support
nimble_parsec
versions that match~> 0.5 or ~> 1.0
Money release 5.3.0
Bug Fixes
- Fix parsing money amounts to use Unicode definition of whitespace (set
[:Zs:]
). Thanks to @sanjibukai for the report.
Enhancements
- Add
Money.sum/2
to sum a list ofMoney
, converting them if required.
Money version 5.2.1
Enhancements
-
Configure the
Money.Application
supervisor via the arguments toMoney.Application.start/2
and configure defaults inmix.exs
. This permits different restart strategies and names. -
Add
Money.ExchangeRates.Supervisor.default_supervisor/0
to return the name of the default supervisor which isMoney.Supervisor
-
Change
Money.ExchangeRates.Supervisor.stop/0
to becomeMoney.ExchangeRates.Supervisor.stop/{0, 1}
allowing the supervisor name to be passed in. The default isMoney.ExchangeRates.Supervisor.default_supervisor/0
Bug Fixes
- Add back the name of the Application supervisor,
Money.Supervisor
. Thanks for the report of the regression to @jeroenvisser101. Fixes #117.
Money version 5.2.0
Enhancements
- Adds a configuration option
:verify_peer
which is a boolean that determines whether to verify the client certificate for any exchange rate service API call. The default istrue
. This option should not be changed without a very clear understanding of the security implications. This option will remain undocumented but supported for now.
Bug fixes
- Handle expired certificate errors on the exchange rates API service and log them. Thanks to @coladarci. Fixes #116
Money version 5.1.0
Enhancements
-
Extract default currency from locale when calling
Money.parse/2
on a money string. The updated docs now say::default_currency
is any valid currency code orfalse
that will used if no currency code, symbol or description is
indentified in the parsed string. The default isnil
which means that the default currency associated with
the:locale
option will be used. Iffalse
then the
currency assocated with the:locale
option will not be
used and an error will be returned if there is no currency
in the string being parsed.
-
Add certificate verification for exchange rate retrieval
Money version 5.0.2
Bug Fixes
- Update the application supervisor spec to the modern module-based approach
Money version 5.0.1
Bug Fixes
- Make
nimble_parsec
a required dependency since it is required for parsing money amounts. Thanks to @jonnystoten for the report.
Money version 4.4.3
Backports a requirement to ensure that nimble_parsec is a required dependency. Using ex_money version 5.x is preferred.
Bug Fixes
Money version 5.0.0
Breaking changes
-
Elixir 1.10 introduces semantic sorting for stucts that depends on the availability of a
compare/2
function that returns:lt
,:eq
or:gt
. Therefore in this release ofex_money
the functionscompare/2
andcompare!/2
are swapped withcmp/2
andcmp!/2
in order to conform with this expectation. Nowcompare/2
will return:eq
,:lt
or:gt
. Andcmp/2
return-1
,0
or1
. -
Deprecate
Money.reduce/1
in favour ofMoney.normalize/1
to be consistent withDecimal
versions1.9
and later.
It is believed and tested that Money
version 5.0.0
is compatible with all versions of Decimal
from 1.6
up to the as-yet-unreleased 2.0
.
Support of Elixir 1.10 Enum sorting
From Elixir verison 1.10.0
, several functions in the Enum
module can use the Money.compare/2
function to simplify sorting. For example:
iex> list = [Money.new(:USD, 100), Money.new(:USD, 200)]
[#Money<:USD, 100>, #Money<:USD, 200>]
iex> Enum.sort list, Money
[#Money<:USD, 100>, #Money<:USD, 200>]
iex> Enum.sort list, {:asc, Money}
[#Money<:USD, 100>, #Money<:USD, 200>]
iex> Enum.sort list, {:desc, Money}
[#Money<:USD, 200>, #Money<:USD, 100>]
Note that Enum.sort/2
will sort money amounts even when the currencies are incompatible. In this case the order of the result is not predictable. It is the developers responsibility to filter the list to compatible currencies prior to sorting. This is a limitation of the Enum.sort/2
implementation.
Notes on Decimal version support
ex_money
version5.0.0
is compatible withDecimal
versions from1.6
onwards. InDecimal
version2.0
the same changes tocompare/2
andcmp/2
will occur and inDecimal
version1.9
,Decimal.cmp/2
is deprecated.ex_money
version5.0.0
detects these different versions ofDecimal
and therefore remains compatability withDecimal
back to version1.6
.