Ex_Cldr_Units v2.6.0 Release Notes

  • ๐Ÿš€ 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

    • ๐Ÿ—„ Add Cldr.Unit.unit_category/1 and deprecate Cldr.Unit.unit_type/1 in order to be consistent with the nomenclature of CLDR