Changelog for Cldr_Units v2.7.0

This is the changelog for Cldr_units v2.7.0 released on October 10th, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

  • Update ex_cldr to version 2.11.0 which encapsulates CLDR version 36.0.0 data.

  • Update minimum Elixir version to 1.6

  • Adds conversion for newton meter, dalton, solar luminosity, pound foot, bar, newton, electron volt, barrel, dunam, decade, mole, pound force, megapascal, pascal, kilopascal, solar radius, therm US, British thermal unit, earth mass.

Changelog for Cldr_Units v2.6.1

This is the changelog for Cldr_units v2.6.1 released on August 31st, 2019. For older changelogs please consult the release tag on GitHub

Bug Fixes

Changelog for Cldr_Units v2.6.0

This is the changelog for Cldr_units v2.6.0 released on August 25th, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

  • Add Cldr.Unit.localize/3 to support converting a given unit into units that are familiar to a given territory. For example, given a unit of #Unit<2, :meter> is would normally be expected to show this as [#Unit<:foot, 5>, #Unit<:inch, 11>]. The data to support these conversions is returned by Cldr.Unit.unit_preferences/0. An example:
  iex> height = Cldr.Unit.new(1.8, :meter)
  iex> Cldr.Unit.localize height, :person, territory: :US, style: :informal
  [#Unit<:foot, 5>, #Unit<:inch, 11>]
  • Note that conversion is dependent on context. The context above is :person reflecting that we are referring to the height of a person. For units of length category, the other contexts available are :rainfall, :snowfall, :vehicle, :visibility and :road. Using the above example with the context of :rainfall we see
  iex> Cldr.Unit.localize height, :rainfall, territory: :US
  [#Unit<:inch, 71>]
  • Adds a :per option to Cldr.Unit.to_string/3. This option leverages the per formatting style to allow compound units to be printed. For example, assume want to emit a string which represents "kilograms per second". There is no such unit defined in CLDR (or perhaps anywhere!). But if we define the unit unit = Cldr.Unit.new(:kilogram, 20) we can then execute Cldr.Unit.to_string(unit, per: :second). Each locale defines a specific way to format such a compount unit. Usually it will return something like 20 kilograms/second

  • Adds Cldr.Unit.unit_preferences/0 to map units into a territory preference alternative unit

  • Adds Cldr.Unit.measurement_systems/0 that identifies the unit system in use for a territory

  • Adds Cldr.Unit.measurement_system_for/1 that returns the measurement system in use for a given territory. The result will be one of :metric, :US or :UK.

Deprecation

Changelog for Cldr_Units v2.5.3

This is the changelog for Cldr_units v2.5.3 released on August 23rd, 2019. For older changelogs please consult the release tag on GitHub

Bug Fixes

Changelog for Cldr_Units v2.5.2

This is the changelog for Cldr_units v2.5.2 released on August 21st, 2019. For older changelogs please consult the release tag on GitHub

Bug Fixes

Changelog for Cldr_Units v2.5.1

This is the changelog for Cldr_units v2.5.1 released on June 18th, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

  • Standardize the development cldr backend as MyApp.Cldr which makes for more understandable and readable examples and doc tests

  • Cldr.Unit.to_string/3 now allows for the backend parameter to default to Cldr.default_backend/0

Changelog for Cldr_Units v2.5.0

This is the changelog for Cldr_units v2.5.0 released on March 28th, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

Changelog for Cldr_Units v2.4.0

This is the changelog for Cldr_units v2.4.0 released on March 23rd, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

  • Supports Cldr.default_backend() as a default for backend parameters in Cldr.Unit

Changelog for Cldr_Units v2.3.3

This is the changelog for Cldr_units v2.3.2 released on March 23rd, 2019. For older changelogs please consult the release tag on GitHub

Bug Fixes

  • Include priv directory in the hex package (thats where the conversion json exists)

Changelog for Cldr_Units v2.3.2

This is the changelog for Cldr_units v2.3.2 released on March 20th, 2019. For older changelogs please consult the release tag on GitHub

Bug Fixes

  • Fix dialyzer warnings

Changelog for Cldr_Units v2.3.1

This is the changelog for Cldr_units v2.3.1 released on March 15th, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

  • Makes generation of documentation for backend modules optional. This is implemented by the :generate_docs option to the backend configuration. The default is true. For example:
defmodule MyApp.Cldr do
  use Cldr,
    default_locale: "en-001",
    locales: ["en", "ja"],
    gettext: MyApp.Gettext,
    generate_docs: false
end

Changelog for Cldr_Units v2.3.0

This is the changelog for Cldr_units v2.3.0 released on March 4th, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

  • The conversion tables are now stored as json and updates may be downloaded at any time with the mix task mix cldr.unit.download. This means that updates to the conversion table may be made without requiring a new release of Cldr.Unit.

Changelog for Cldr_Units v2.2.0

This is the changelog for Cldr_units v2.2.0 released on February 24th, 2019. For older changelogs please consult the release tag on GitHub

Enhancements

This release is primarily about improving the conversion of units without introducing precision errors that accumulate for floats. The strategy is to define the conversion value between individual unit pairs.

Currently the implementation uses a static map. In order to give users a better experience a future release will allow for both specifying mappings as a parameter to Cldr.Unit.convert/2 and as compile time configuration options including the option to download conversion tables from the internet.

  • Direct conversions are now supported. For some calculations, the process of diving and multiplying by conversion factors produces an unexpected result. Some direct conversions are now defined which produce a more expected result.

  • In most cases, return integer values from conversion and decomposition when the originating unit value is also an integer

Changelog for Cldr_Units v2.1.0

This is the changelog for Cldr_units v2.1.0 released on December 8th, 2018. For older changelogs please consult the release tag on GitHub

Enhancements

The appropriate backend equivalents are also added.

Changelog for Cldr_Units v2.0.0

This is the changelog for Cldr_units v2.0.0 released on November 24th, 2018. For older changelogs please consult the release tag on GitHub

Breaking changes

  • Cldr.Unit now requires a Cldr backend module to be configured

  • In order for the String.Chars protocol to be supported (which is used in string interpolation and by Kernel.to_string/1) a default backend must be configured. For example in config.exs:

config :ex_cldr_units,
  default_backend: MyApp.Cldr

Enhancements

  • Move to a backend module structure with ex_cldr version 2.0