io.randomseed/lazy-map.io.randomseed.bankster.util.fs/default-encoding is no longer private.infra.clj.abs from being aliased in io.randomseed.bankster.money.currency/ns-code, currency/code, currency/weight,
currency/domain, currency/kind, currency/sc, currency/nr.Money instead of BigDecimal
when money/value was called on currency and money.money/compare and money/compare-amount.Fixed a bug which caused rounding mode parsing to not make use of evaluated results of the given expression.
Improved rounding mode parsing macros.
Fixed type hinting in fs/absoute-path?.
Monetary comparators (money/compare and money/compare-amounts) now accept nil values.
Added money/round-to for interval-based rounding.
fs/absolute-path? and fs/relative-path?Improved money/on-amount (now it rescales results to the scale of a money,
not the nominal scale of a currency).
Added alias money/apply that points to money/on-amount.
Added money/set-amount.
Monetary implementation for Currency objects fixed for nil registry argument.
Affected function: currency/unit.
Fixed type hinting in currency/sc and currency/nr.
Monetary implementation for maps is more restrictive when registry is passed as an
argument. Previously maps were causing some functions to create ad hoc
currencies, now the :id key is used to get the existing currency from a registry.
This is in line with the protocol's guidelines. Affected functions: currency/unit,
currency/of-id.
Monetary implementation for Currency objects is now fulfilling protocol
specification, making ID-only look-ups. Affected functions: currency/unit,
currency/of-id.
Monetary implementation for keywords now falls back to currency code look-up even
if the given identifier is not namespace-qualified. Affected functions:
currency/unit, currency/present?. It fixes the chicken or the egg problem during
registry building.
Functions currency/add-countries, currency/remove-localized-properties,
currency/add-localized-properties, currency/add-weighted-code and currency/update
are now more strict and require currency ID to be given (not currency code).
BREAKING CHANGES:
currency/add-weighted-currency renamed to
currency/add-weighted-code.Added money/data-readers and money/code-readers constants.
Added data_readers_edn.clj (with generator in importer/readers-export) containing
data readers for parsing EDN files.
Fixed a bug causing registry to not be properly set in currency/with-registry and
registry/with.
Added fs/get-resource utility function.
BREAKING CHANGES:
Data readers for tagged literals are split into code and data related handlers:
Functions currency/code-literal and money/code-literal are now emitting Clojure
forms that are to be evaluated to produce Currency and Money objects.
Functions currency/data-literal and money/data-literal are now returning Currency
and Money objects.
Tagged literal handlers (for both Clojure code and data) can now be controlled by the environment (e.g. dynamic variables for setting alternate registry or rounding mode during parsing).
Constant bankster/tagged-literals moved to money/tagged-literals.
io.randomseed.bankster/data-readers map to expose tagged literal handlers.money/of-registry to not rescale amounts.Function money/div-rem renamed to money/rem and improved to behave like money/div in
terms of accepted argument types, rounding and rescaling.
Added function money/abs.
Added aliases: money/+, money/-, money/*, money//, money/min, money/max.
Added aliases: money/>, money/>=, money/<, money/<=, money/=, money/==.
Added aliases: money/pos?, money/neg?, money/zero?.
Conversion functions scale/->int, scale/->long, scale/->double, scale/->float,
scale/to-plain-string, scale/to-clojure-string, scale/to-symbol,
scale/to-clojure-symbol are now using scale/amount to get the actual amount of the
given scalable instead of expecting BigDecimal values.
BREAKING CHANGES:
money/pos now returns its argument. Use money/abs to get the absolute
value.Monetary protocol methods are now more strict about the origin of currency
if a registry is given (by-ID resolving and getting from a registry happens
even for Currency objects).
Unary variants of money/div and money/div-scaled are now able to take Money as
arguments (common operation when recalculating exchange rates).
Protocol method implementations of money/value short-circuit on nil given as an
amount.
Added functions: money/auto-scaled?, money/of-registry and money/on-amount.
Fixed a bug causing division and multiplication of auto-scaled currencies to rescale results to latest scales of the amounts instead of performing scale-free calculations.
Added stripping of trailing zeros before performing scale-free divisions – causes non-terminal decimal expansion to end after more optimal (lesser) number of decimal digits.
currency/update for updating currencies with additional data preservation
(localized properties, countries, etc.).money/cast for casting monetary amounts across currencies
(different or slightly different, e.g. sourced in another registries).scale/to-clojure-string, scale/to-symbol, scale/to-clojure-symbol.money/->symbol, money/->clojure-symbol, money/->double, money/->float.money/value to be more polymorphic (currency argument).scale/->int, scale/->long, scale/->float, scale/->double.BREAKING CHANGES:
scale/->int, scale/->long, scale/->float, scale/->double.scale/to-plain-string is now converting decimals to plain strings
without adding M suffix when there is too many digits. This functionality
was moved to scale/to-clojure-string.money/convert now accepts a price and is more polymorphic.currency/localized-properties.Money objects when their currency is auto-scaled.money/amount, money/stripped-amount and money/currency are now polymorphic.M letter to a number).Monetary implementation functions for Money.currency/id Monetary implementation to support currency codes.Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |