Cldr Utils from version 2.27.0 requires Elixir 1.12 or later
This is the changelog for Cldr Utils v2.28.2 released on September 6th, 2024. For older changelogs please consult the release tag on GitHub
- Use
:erlang.iolist_to_binary/1
instead ofList.to_string/1
since the later won't handle some unicode correctly.
This is the changelog for Cldr Utils v2.28.1 released on August 14th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Json.decode!/1
when calling with a charlist instead of a binary.
This is the changelog for Cldr Utils v2.28.0 released on July 10th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Json.decode!/1
to return only the decoded JSON.
- Add
Cldr.Json.decode!/2
that implements thekeys: :atoms
option fromJason
.
This is the changelog for Cldr Utils v2.27.0 released on June 23rd, 2024. For older changelogs please consult the release tag on GitHub
cldr_utils
version 2.27.0 and later requires Elixir 1.12 or later.
- Adds
Cldr.Json.decode!/1
that delegates to:json.decode/1
. This allowsCldr.Json
to be configured as ajson_library
inex_cldr
for OTP versions 27 and later. For example:
config :ex_cldr,
json_library: Cldr.Json
- Refactor some tests so they work on older Elixir versions without
sigil_c
.
This is the changelog for Cldr Utils v2.25.0 released on May 28th, 2024. For older changelogs please consult the release tag on GitHub
- Fix warnings on Elixir 1.17. This primarily relates to charlists constants now required to use
sigil_c
to avoid warnings. As a result, tests will only work on Elixir 1.16 and later even though support for the library is for Elixir 1.11 and later.
This is the changelog for Cldr Utils v2.25.0 released on March 20th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Math.pow/2
when the exponent is in the range 0 < n < 1.
- Adds
Cldr.Math.mult/2
,Cldr.Math.div/2
,Cldr.Math.add/2
andCldr.Math.sub/2
to operate on integers, floats and Decimals.
This is the changelog for Cldr Utils v2.24.2 released on November 2nd, 2023. For older changelogs please consult the release tag on GitHub
- Fix deprecation warnings for Elixir 1.16.
This is the changelog for Cldr Utils v2.24.1 released on June 17th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Resolve host certificate stores at runtime, not compile time. Thanks to @joshk for the PR. Closes #7.
This is the changelog for Cldr Utils v2.24.0 released on May 22nd, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Adds
Cldr.Utils.otp_version/0
to return the OTP version as a string. Copied with thanks and appreciation from theHex
source.
This is the changelog for Cldr Utils v2.23.0 released on May 4th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Make parsing
HTTP_PROXY
values more resilient to invalid URLs.
This is the changelog for Cldr Utils v2.23.0 released on May 4th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Adds support for https proxy for
Cldr.Http.get/2
. The proxy can be specified as an option to toCldr.Http.get/2
, as a configuration option under the:ex_cldr[:https_proxy]
key, or from the environment variablesHTTPS_PROXY
orhttps_proxy
. Thanks to @d-led for the PR and issue.
This is the changelog for Cldr Utils v2.22.0 released on March 25th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Adds
:timeout
and:connection_timeout
options toCldr.Http.get/2
. The defaults are[timeout: 60_000, connection_timeout: 120_000]
. The environment variablesCLDR_HTTP_TIMEOUT
andCLDR_HTTPS_CONNECTION_TIMEOUT
can also be used to set the timeouts. The prededence isoptions[:timeout] -> environment variable -> default.
This is the changelog for Cldr Utils v2.21.0 released on January 27th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Add
:verify_peer
as an option toCldr.Http.get/1
andCldr.Http.get_with_headers/1
This is the changelog for Cldr Utils v2.20.0 released on January 27th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
-
Adds
Cldr.Http.get_with_headers/1
that will return the headers from the response as well as the body. -
Support headers when sending a request with
Cldr.Http.get/1
andCldr.Http.get_with_headers/1
-
Add
:verify_peer
as an option toCldr.Http.get/1
andCldr.Http.get_with_headers/1
This is the changelog for Cldr Utils v2.19.2 released on January 25th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Relaxes the requirement for the optional castore library. Thanks to @maennchen for the PR. Closes #6.
This is the changelog for Cldr Utils v2.19.1 released on August 23rd, 2022. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Use only TLS 1.2 on OTP versions less than 25.
This is the changelog for Cldr Utils v2.19.0 released on August 22nd, 2022. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
-
Sets SNI option for SSL connections
-
Supports
CLDR_UNSAFE_HTTPS
environment variable option which, if set to anything other thanFALSE
,false
,nil
orNIL
will not perform peer verification for HTTPS requests. This may be used in circumstances where peer verification is failing but if generally not recommended.
This is the changelog for Cldr Utils v2.18.0 released on July 31st, 2022. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Fix deprecation warnings for Elixir 1.14.
This is the changelog for Cldr Utils v2.17.2 released on May 8th, 2022. For older changelogs please consult the release tag on GitHub
- Harden the SSL options for
Cldr.Http.get/1
in line with the recommendations at https://erlef.github.io/security-wg/secure_coding_and_deployment_hardening/ssl
This is the changelog for Cldr Utils v2.17.1 released on February 21st, 2022. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Map.invert/2
to useEnum.map/2
notEnum.flat_map/2
This is the changelog for Cldr Utils v2.17.0 released on October 27th, 2021. For older changelogs please consult the release tag on GitHub
-
Add
:duplicates
option toCldr.Map.invert/2
to determine how to handle duplicate values after inversion. The options are:nil
orfalse
which is the default and means only one value is kept.Map.new/1
is used meanng the selected value is non-deterministic.:keep
meaning duplicate values are returned in a list:shortest
means the shortest duplicate is kept. This operates on string or atom values.:longest
means the shortest duplicate is kept. This operates on string or atom values.
-
Don't attempt to convert calendar era dates to iso days - do that when required in
ex_cldr_calendars
-
Remove
Cldr.Calendar.Conversion
module which is not required -
Fix
Cldr.Map.deep_map/3
so that the:filter
option is propogated correctly when:only/:except
is also specified.
This is the changelog for Cldr Utils v2.17.0 released on October 5th, 2021. For older changelogs please consult the release tag on GitHub
-
Don't attempt to convert calendar era dates to iso days - do that when required in
ex_cldr_calendars
-
Remove
Cldr.Calendar.Conversion
module which is not required -
Fix
Cldr.Map.deep_map/3
so that the:filter
option is propogated correctly when:only/:except
is also specified.
-
Add
:duplicates
option toCldr.Map.invert/2
to determine how to handle duplicate values after inversion. The options are:nil
orfalse
which is the default and means only one value is kept.Map.new/1
is used meanng the selected value is non-deterministic.:keep
meaning duplicate values are returned in a list:shortest
means the shortest duplicate is kept. This operates on string or atom values.:longest
means the shortest duplicate is kept. This operates on string or atom values.
This is the changelog for Cldr Utils v2.16.0 released on June 11th, 2021. For older changelogs please consult the release tag on GitHub
-
Add
Cldr.Map.extract_strings/2
-
Make resolver a parameter to
Cldr.Map.deep_merge/3
-
Make resolver a parameter to
Cldr.Map.merge_map_list/2
-
Add
Cldr.Map.prune/2
that prunes (deletes) branches from a (possibly deeply nested) map -
Add
Cldr.Map.invert/1
that inverts the{key, value}
of a map to be{value, key}
and ifvalue
is a list, one new map entry for each element ofvalue
will be created (mapped tokey
)
This is the changelog for Cldr Utils v2.15.1 released on March 16th, 2021. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Digit.to_number/2
for floats. Thanks for the report from @jlauemoeller. Fixes #15.
This is the changelog for Cldr Utils v2.15.0 released on March 5th, 2021. For older changelogs please consult the release tag on GitHub
- Adds the options
:filter
,:reject
and:skip
toCldr.Map.deep_map/3
that work on entire branches of a map.
This is the changelog for Cldr Utils v2.14.1 released on February 17th, 2021. For older changelogs please consult the release tag on GitHub
- Merge the fixes from cldr_utils version 2.13.3 for
Cldr.Math.power/2
This is the changelog for Cldr Utils v2.14.0 released on November 7th, 2020. For older changelogs please consult the release tag on GitHub
- Adds
Cldr.Http.get/1
to download fromhttps
URLs using:httpc
but with certificate vertification enabled (it is not enabled by default in the:httpc
module).
This is the changelog for Cldr Utils v2.13.3 released on February 17th, 2021. For older changelogs please consult the release tag on GitHub
-
Fix
Cldr.Math.power/2
when both arguments are Decimal and the power is negative. -
Update the docs for
Cldr.Math.round_significant/2
to note that rounding floats to significant digits cannot always return the expected precision since floats cannot represent all decimal numbers correctly.
This is the changelog for Cldr Utils v2.13.2 released on October 20th, 2020. For older changelogs please consult the release tag on GitHub
- Fix unused variable warning on OTP versions that do not include
:persistent_term
module. Thanks to @kianmeng.
This is the changelog for Cldr Utils v2.13.1 released on September 30th, 2020. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Decimal.parse/1
as a compatibiity layer for Decimal 1.x and 2.x
This is the changelog for Cldr Utils v2.12.0 released on September 29th, 2020. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Digit.number_of_trailing_zeros/1
to calculate the number of trailing zeros in an integer
This is the changelog for Cldr Utils v2.11.0 released on September 25th, 2020. For older changelogs please consult the release tag on GitHub
-
Provides
Cldr.Decimal.reduce/1
as a compatibility shim for Decimal 1.x and 2.x -
Provides
Cldr.Decimal.compare/2
as a compatibility shim for Decimal 1.x and 2.x
This is the changelog for Cldr Utils v2.10.0 released on September 8th, 2020. For older changelogs please consult the release tag on GitHub
- Supports
Decimal
1.6 or greater orDecimal
2.x or later
This is the changelog for Cldr Utils v2.9.1 released on May 3rd, 2020. For older changelogs please consult the release tag on GitHub
- Fix compatibility with
ex_cldr
releases up to 2.13.0. Thanks to @hl for the report. Fixes #3.
This is the changelog for Cldr Utils v2.9.0 released on May 2nd, 2020. For older changelogs please consult the release tag on GitHub
-
Add
:level
,:only
and:except
options toCldr.Map.deep_map/3
and refactor functions that use it -
Add
Cldr.Enum.reduce_peeking/3
that is a simple reduce function that also passed the tail of the enum being reduced to enable a simple form of lookahead -
Refactor
Cldr.Math.round/2
implementation for floating point numbers that improves efficiency by about 100% since it avoids round trip conversion toDecimal
This is the changelog for Cldr Utils v2.8.0 released on February 14th, 2020. For older changelogs please consult the release tag on GitHub
- Be more resilient of the availability of
:persistent_term
given thatget/2
,get/1
and:persistent_term
itself are available on different OTP releases. Thanks to @halostatue. Closes #2.
This is the changelog for Cldr Utils v2.7.0 released on January 31st, 2020. For older changelogs please consult the release tag on GitHub
- Add
Cldr.String.to_underscore/1
that replaces "-" with "_"
This is the changelog for Cldr Utils v2.6.0 released on January 21st, 2020. For older changelogs please consult the release tag on GitHub
- Support
Decimal
versions~> 1.6 or 1.9 or 2.0
. Version 1.9 deprecatesDecimal.compare/2
in favour ofDecimal.cmp/2
. The upcomingDecimal
version 2.0 deprecatesDecimal.cmp/2
in favour of a new implementation ofDecimal.compare/2
that conforms to Elixir norms and is required to supportEnum.sort/2
correctly. This version ofcldr_utils
detects the relevant version and adapts accordingly at compile time.
This is the changelog for Cldr Utils v2.5.0 released on October 22nd, 2019. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Macros.warn_once/3
to log a warning, but only once for a given key
This is the changelog for Cldr Utils v2.4.0 released on August 23rd, 2019. For older changelogs please consult the release tag on GitHub
- Add
Cldr.String.hash/1
to implement a polynomial rolling hash function
This is the changelog for Cldr Utils v2.3.0 released on June 15th, 2019. For older changelogs please consult the release tag on GitHub
- Adds
doc_since/1
andcalendar_impl/0
to support conditional compilation based upon Elixir versions
This is the changelog for Cldr Utils v2.2.0 released on March 25th, 2019. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Math.div_amod/2
This is the changelog for Cldr Utils v2.1.0 released on March 10th, 2019. For older changelogs please consult the release tag on GitHub
Cldr.Map.integerize_keys/1
now properly processes negative integer keys. Minor version change to make it easier to peg versions in upstream packages.
This is the changelog for Cldr Utils v2.0.4 released on Jnauary 3rd, 2018. For older changelogs please consult the release tag on GitHub
- Fixes
Cldr.Math.round/3
for floats when rounding is > 0 digits
This is the changelog for Cldr Utils v2.0.4 released on Decmber 15th, 2018. For older changelogs please consult the release tag on GitHub
- Fixes
Cldr.Math.round/3
to be compatible withDecimal.round/3
andKernel.round/1
This is the changelog for Cldr Utils v2.0.3 released on Decmber 8th, 2018. For older changelogs please consult the release tag on GitHub
- Fixed an error in
Cldr.Math.round/3
forDecimal
numbers where the value being rounded is < 1 but greater than 0 whereby the sign was being returned astrue
instead of1
.
This is the changelog for Cldr Utils v2.0.2 released on November 23rd, 2018. For older changelogs please consult the release tag on GitHub
- Replace additional deprecated
Decimal.new/1
withDecimal.from_float/1
where required
This is the changelog for Cldr Utils v2.0.1 released on November 23rd, 2018. For older changelogs please consult the release tag on GitHub
- Replace deprecated
Decimal.new/1
withDecimal.from_float/1
where required
This is the changelog for Cldr Utils v2.0.0 released on October 29th, 2018. For older changelogs please consult the release tag on GitHub
- Initial release extracted from ex_cldr