Skip to content

Commit 392a092

Browse files
Release 2.10.0 (#50)
* Create a release commit for 2.10.0 * fix: Bump ex_cldr * tests: Update values
1 parent 35731e3 commit 392a092

7 files changed

Lines changed: 54 additions & 40 deletions

File tree

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
## Cldr Territories v2.10.0 TBD, 2025
4+
5+
### Enhancements
6+
7+
* Fix error where `to_currency_code/1` would break for countries with no currencies, thanks to @Stroemgren
8+
* Add `to_territory_code/3` and `to_territory_code!/3` functions for territory name conversion, thanks to @elepedus
9+
310
## Cldr Territories v2.9.0 May 14, 2024
411

512
### Enhancements

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
iex> MyCldr.Territory.from_territory_code(:GB)
1313
{:ok, "United Kingdom"}
1414

15+
iex> MyCldr.Territory.to_territory_code("United Kingdom", "en")
16+
{:ok, :GB}
17+
1518
iex> MyCldr.Territory.translate_territory("Reino Unido", "pt", "en")
1619
{:ok, "UK"}
1720

@@ -94,7 +97,7 @@ Add `ex_cldr_territories` as a dependency to your `mix` project:
9497
```elixir
9598
defp deps do
9699
[
97-
{:ex_cldr_territories, "~> 2.9.0"}
100+
{:ex_cldr_territories, "~> 2.10.0"}
98101
]
99102
end
100103
```

lib/cldr/backend.ex

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -661,15 +661,15 @@ defmodule Cldr.Territory.Backend do
661661
{:ok,
662662
%{
663663
currency: [GBP: %{from: ~D[1694-07-27]}],
664-
gdp: 2925000000000,
664+
gdp: 3700000000000,
665665
language_population: %{
666666
"ar" => %{population_percent: 0.3},
667667
"bn" => %{population_percent: 0.4},
668668
"cy" => %{official_status: "official_regional", population_percent: 1.3},
669669
"de" => %{population_percent: 9},
670670
"en" => %{official_status: "official", population_percent: 98},
671671
"es" => %{population_percent: 8},
672-
"fr" => %{population_percent: 23},
672+
"fr" => %{population_percent: 17},
673673
"ga" => %{official_status: "official_regional", population_percent: 0.15},
674674
"gd" => %{
675675
official_status: "official_regional",
@@ -678,11 +678,12 @@ defmodule Cldr.Territory.Backend do
678678
},
679679
"gu" => %{population_percent: 2.9},
680680
"it" => %{population_percent: 0.2},
681-
"kw" => %{population_percent: 0.003},
681+
"kw" => %{population_percent: 0.0029},
682682
"lt" => %{population_percent: 0.2},
683683
"pa" => %{population_percent: 3.6},
684684
"pl" => %{population_percent: 4},
685685
"pt" => %{population_percent: 0.2},
686+
"ro" => %{population_percent: 0.8},
686687
"sco" => %{population_percent: 2.5, writing_percent: 5},
687688
"so" => %{population_percent: 0.2},
688689
"ta" => %{population_percent: 3.2},
@@ -697,7 +698,7 @@ defmodule Cldr.Territory.Backend do
697698
paper_size: :a4,
698699
temperature: :uksystem
699700
},
700-
population: 65761100
701+
population: 68459100
701702
}}
702703
703704
"""
@@ -714,15 +715,15 @@ defmodule Cldr.Territory.Backend do
714715
iex> #{inspect __MODULE__}.info!(:GB)
715716
%{
716717
currency: [GBP: %{from: ~D[1694-07-27]}],
717-
gdp: 2925000000000,
718+
gdp: 3700000000000,
718719
language_population: %{
719720
"ar" => %{population_percent: 0.3},
720721
"bn" => %{population_percent: 0.4},
721722
"cy" => %{official_status: "official_regional", population_percent: 1.3},
722723
"de" => %{population_percent: 9},
723724
"en" => %{official_status: "official", population_percent: 98},
724725
"es" => %{population_percent: 8},
725-
"fr" => %{population_percent: 23},
726+
"fr" => %{population_percent: 17},
726727
"ga" => %{official_status: "official_regional", population_percent: 0.15},
727728
"gd" => %{
728729
official_status: "official_regional",
@@ -731,11 +732,12 @@ defmodule Cldr.Territory.Backend do
731732
},
732733
"gu" => %{population_percent: 2.9},
733734
"it" => %{population_percent: 0.2},
734-
"kw" => %{population_percent: 0.003},
735+
"kw" => %{population_percent: 0.0029},
735736
"lt" => %{population_percent: 0.2},
736737
"pa" => %{population_percent: 3.6},
737738
"pl" => %{population_percent: 4},
738739
"pt" => %{population_percent: 0.2},
740+
"ro" => %{population_percent: 0.8},
739741
"sco" => %{population_percent: 2.5, writing_percent: 5},
740742
"so" => %{population_percent: 0.2},
741743
"ta" => %{population_percent: 3.2},
@@ -750,7 +752,7 @@ defmodule Cldr.Territory.Backend do
750752
paper_size: :a4,
751753
temperature: :uksystem
752754
},
753-
population: 65761100
755+
population: 68459100
754756
}
755757
756758
"""
@@ -1050,9 +1052,9 @@ defmodule Cldr.Territory.Backend do
10501052
with {:ok, locale} <- Cldr.validate_locale(locale, unquote(backend)) do
10511053
normalized_name = Cldr.Territory.normalize_name(territory_name)
10521054
case inverted_territories(locale.cldr_locale_name) do
1053-
%{^normalized_name => territory_code} ->
1055+
%{^normalized_name => territory_code} ->
10541056
{:ok, Cldr.Territory.as(territory_code, options)}
1055-
_ ->
1057+
_ ->
10561058
{:error, {Cldr.UnknownTerritoryError, "No territory code for #{inspect territory_name} could be found in locale #{inspect locale.cldr_locale_name}"}}
10571059
end
10581060
end

lib/cldr/territory.ex

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -624,15 +624,15 @@ defmodule Cldr.Territory do
624624
{:ok,
625625
%{
626626
currency: [GBP: %{from: ~D[1694-07-27]}],
627-
gdp: 2925000000000,
627+
gdp: 3700000000000,
628628
language_population: %{
629629
"ar" => %{population_percent: 0.3},
630630
"bn" => %{population_percent: 0.4},
631631
"cy" => %{official_status: "official_regional", population_percent: 1.3},
632632
"de" => %{population_percent: 9},
633633
"en" => %{official_status: "official", population_percent: 98},
634634
"es" => %{population_percent: 8},
635-
"fr" => %{population_percent: 23},
635+
"fr" => %{population_percent: 17},
636636
"ga" => %{official_status: "official_regional", population_percent: 0.15},
637637
"gd" => %{
638638
official_status: "official_regional",
@@ -641,11 +641,12 @@ defmodule Cldr.Territory do
641641
},
642642
"gu" => %{population_percent: 2.9},
643643
"it" => %{population_percent: 0.2},
644-
"kw" => %{population_percent: 0.003},
644+
"kw" => %{population_percent: 0.0029},
645645
"lt" => %{population_percent: 0.2},
646646
"pa" => %{population_percent: 3.6},
647647
"pl" => %{population_percent: 4},
648648
"pt" => %{population_percent: 0.2},
649+
"ro" => %{population_percent: 0.8},
649650
"sco" => %{population_percent: 2.5, writing_percent: 5},
650651
"so" => %{population_percent: 0.2},
651652
"ta" => %{population_percent: 3.2},
@@ -660,7 +661,7 @@ defmodule Cldr.Territory do
660661
paper_size: :a4,
661662
temperature: :uksystem
662663
},
663-
population: 65761100
664+
population: 68459100
664665
}}
665666
666667
iex> Cldr.Territory.info(:"155")
@@ -689,15 +690,15 @@ defmodule Cldr.Territory do
689690
iex> Cldr.Territory.info!(:GB)
690691
%{
691692
currency: [GBP: %{from: ~D[1694-07-27]}],
692-
gdp: 2925000000000,
693+
gdp: 3700000000000,
693694
language_population: %{
694695
"ar" => %{population_percent: 0.3},
695696
"bn" => %{population_percent: 0.4},
696697
"cy" => %{official_status: "official_regional", population_percent: 1.3},
697698
"de" => %{population_percent: 9},
698699
"en" => %{official_status: "official", population_percent: 98},
699700
"es" => %{population_percent: 8},
700-
"fr" => %{population_percent: 23},
701+
"fr" => %{population_percent: 17},
701702
"ga" => %{official_status: "official_regional", population_percent: 0.15},
702703
"gd" => %{
703704
official_status: "official_regional",
@@ -706,11 +707,12 @@ defmodule Cldr.Territory do
706707
},
707708
"gu" => %{population_percent: 2.9},
708709
"it" => %{population_percent: 0.2},
709-
"kw" => %{population_percent: 0.003},
710+
"kw" => %{population_percent: 0.0029},
710711
"lt" => %{population_percent: 0.2},
711712
"pa" => %{population_percent: 3.6},
712713
"pl" => %{population_percent: 4},
713714
"pt" => %{population_percent: 0.2},
715+
"ro" => %{population_percent: 0.8},
714716
"sco" => %{population_percent: 2.5, writing_percent: 5},
715717
"so" => %{population_percent: 0.2},
716718
"ta" => %{population_percent: 3.2},
@@ -725,7 +727,7 @@ defmodule Cldr.Territory do
725727
paper_size: :a4,
726728
temperature: :uksystem
727729
},
728-
population: 65761100
730+
population: 68459100
729731
}
730732
"""
731733
@doc since: "1.0.0"
@@ -966,7 +968,7 @@ defmodule Cldr.Territory do
966968
* `locale` is any configured locale. See `Cldr.known_locale_names/1`.
967969
The default is `Cldr.get_locale/0`
968970
* `options` are:
969-
* `as: :atom`
971+
* `as: :atom`
970972
* `as: :binary`
971973
* `as: :charlist`
972974
@@ -987,7 +989,7 @@ defmodule Cldr.Territory do
987989
with {:ok, locale} <- Cldr.validate_locale(locale, backend) do
988990
normalized_name = normalize_name(territory_name)
989991
inverted_territories = Module.concat(backend, Territory).inverted_territories(locale.cldr_locale_name)
990-
992+
991993
case inverted_territories do
992994
%{^normalized_name => territory_code} -> {:ok, as(territory_code, options)}
993995
_ -> {:error, {Cldr.UnknownTerritoryError, "No territory code for #{inspect territory_name} could be found in locale #{inspect locale.cldr_locale_name}"}}
@@ -1026,20 +1028,20 @@ defmodule Cldr.Territory do
10261028

10271029
@doc """
10281030
Converts a territory code to a specified format.
1029-
1031+
10301032
* `options` are:
10311033
* `as: :atom` (default)
10321034
* `as: :binary`
10331035
* `as: :charlist`
1034-
1036+
10351037
## Example
1036-
1038+
10371039
iex> Cldr.Territory.as(:GB, [as: :atom])
10381040
:GB
1039-
1041+
10401042
iex> Cldr.Territory.as(:GB, [as: :binary])
10411043
"GB"
1042-
1044+
10431045
iex> Cldr.Territory.as(:GB, [as: :charlist])
10441046
~c"GB"
10451047
"""

mix.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
defmodule Cldr.Territories.Mixfile do
22
use Mix.Project
33

4-
@version "2.9.0"
4+
@version "2.10.0"
55

66
def project do
77
[
@@ -50,7 +50,7 @@ defmodule Cldr.Territories.Mixfile do
5050
if path = System.get_env("CLDR_PATH") do
5151
[path: path]
5252
else
53-
"~> 2.38"
53+
"~> 2.42"
5454
end
5555
end
5656

mix.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
%{
22
"abnf2": {:hex, :abnf2, "0.1.2", "6f8792b8ac3288dba5fc889c2bceae9fe78f74e1a7b36bea9726ffaa9d7bef95", [:mix], [], "hexpm"},
3-
"cldr_utils": {:hex, :cldr_utils, "2.25.0", "3cc2ab6e9e4f855ba78a3f3fc4963ccf7b68b731f4e91de3d9b310adddb96b62", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "9041660356ffa1129e0d87d110e188f5da0e0bba94fb915e11275e04ace066e1"},
4-
"decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
3+
"cldr_utils": {:hex, :cldr_utils, "2.28.3", "d0ac5ed25913349dfaca8b7fe14722d588d8ccfa3e335b0510c7cc3f3c54d4e6", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:certifi, "~> 2.5", [hex: :certifi, repo: "hexpm", optional: true]}, {:decimal, "~> 1.9 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "40083cd9a5d187f12d675cfeeb39285f0d43e7b7f2143765161b72205d57ffb5"},
4+
"decimal": {:hex, :decimal, "2.3.0", "3ad6255aa77b4a3c4f818171b12d237500e63525c2fd056699967a3e7ea20f62", [:mix], [], "hexpm", "a4d66355cb29cb47c3cf30e71329e58361cfcb37c34235ef3bf1d7bf3773aeac"},
55
"dialyxir": {:hex, :dialyxir, "1.4.3", "edd0124f358f0b9e95bfe53a9fcf806d615d8f838e2202a9f430d59566b6b53b", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "bf2cfb75cd5c5006bec30141b131663299c661a864ec7fbbc72dfa557487a986"},
66
"earmark": {:hex, :earmark, "1.4.5", "62ffd3bd7722fb7a7b1ecd2419ea0b458c356e7168c1f5d65caf09b4fbdd13c8", [:mix], [], "hexpm", "b7d0e6263d83dc27141a523467799a685965bf8b13b6743413f19a7079843f4f"},
77
"earmark_parser": {:hex, :earmark_parser, "1.4.39", "424642f8335b05bb9eb611aa1564c148a8ee35c9c8a8bba6e129d51a3e3c6769", [:mix], [], "hexpm", "06553a88d1f1846da9ef066b87b57c6f605552cfbe40d20bd8d59cc6bde41944"},
88
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
9-
"ex_cldr": {:hex, :ex_cldr, "2.38.1", "6dc11c1571522561fce03db680502dca2278cc20386b122ef7781b488e56dc0f", [:mix], [{:cldr_utils, "~> 2.25", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:gettext, "~> 0.19", [hex: :gettext, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: true]}], "hexpm", "1e083be8d5f7e5d2cc993967c5d99864bacd3456b5f74d4a50985e102ad9c449"},
9+
"ex_cldr": {:hex, :ex_cldr, "2.42.0", "17ea930e88b8802b330e1c1e288cdbaba52cbfafcccf371ed34b299a47101ffb", [:mix], [{:cldr_utils, "~> 2.28", [hex: :cldr_utils, repo: "hexpm", optional: false]}, {:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:gettext, "~> 0.19", [hex: :gettext, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: true]}], "hexpm", "07264a7225810ecae6bdd6715d8800c037a1248dc0063923cddc4ca3c4888df6"},
1010
"ex_doc": {:hex, :ex_doc, "0.32.1", "21e40f939515373bcdc9cffe65f3b3543f05015ac6c3d01d991874129d173420", [:mix], [{:earmark_parser, "~> 1.4.39", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.1", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "5142c9db521f106d61ff33250f779807ed2a88620e472ac95dc7d59c380113da"},
11-
"jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"},
11+
"jason": {:hex, :jason, "1.4.4", "b9226785a9aa77b6857ca22832cffa5d5011a667207eb2a0ad56adb5db443b8a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "c5eb0cab91f094599f94d55bc63409236a8ec69a21a67814529e8d5f6cc90b3b"},
1212
"makeup": {:hex, :makeup, "1.1.1", "fa0bc768698053b2b3869fa8a62616501ff9d11a562f3ce39580d60860c3a55e", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "5dc62fbdd0de44de194898b6710692490be74baa02d9d108bc29f007783b0b48"},
1313
"makeup_elixir": {:hex, :makeup_elixir, "0.16.2", "627e84b8e8bf22e60a2579dad15067c755531fea049ae26ef1020cad58fe9578", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "41193978704763f6bbe6cc2758b84909e62984c7752b3784bd3c218bb341706b"},
1414
"makeup_erlang": {:hex, :makeup_erlang, "0.1.5", "e0ff5a7c708dda34311f7522a8758e23bfcd7d8d8068dc312b5eb41c6fd76eba", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "94d2e986428585a21516d7d7149781480013c56e30c6a233534bedf38867a59a"},
15-
"nimble_parsec": {:hex, :nimble_parsec, "1.4.0", "51f9b613ea62cfa97b25ccc2c1b4216e81df970acd8e16e8d1bdc58fef21370d", [:mix], [], "hexpm", "9c565862810fb383e9838c1dd2d7d2c437b3d13b267414ba6af33e50d2d1cf28"},
15+
"nimble_parsec": {:hex, :nimble_parsec, "1.4.2", "8efba0122db06df95bfaa78f791344a89352ba04baedd3849593bfce4d0dc1c6", [:mix], [], "hexpm", "4b21398942dda052b403bbe1da991ccd03a053668d147d53fb8c4e0efe09c973"},
1616
"poison": {:hex, :poison, "4.0.1", "bcb755a16fac91cad79bfe9fc3585bb07b9331e50cfe3420a24bcc2d735709ae", [:mix], [], "hexpm"},
1717
}

test/territory_test.exs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ defmodule Cldr.TerritoryTest do
3232
USN: %{tender: false},
3333
USS: %{tender: false, to: ~D[2014-03-01]}
3434
],
35-
gdp: 19490000000000,
35+
gdp: 24660000000000,
3636
language_population: %{
3737
"cad" => %{population_percent: 0},
3838
"cho" => %{population_percent: 0.0033},
@@ -47,10 +47,10 @@ defmodule Cldr.TerritoryTest do
4747
"fr" => %{population_percent: 0.56},
4848
"frc" => %{population_percent: 0.0084},
4949
"haw" => %{official_status: "official_regional", population_percent: 0.0089},
50-
"ik" => %{population_percent: 0.0024, writing_percent: 5},
50+
"ik" => %{population_percent: 0.0023, writing_percent: 5},
5151
"it" => %{population_percent: 0.34},
5252
"ko" => %{population_percent: 0.3},
53-
"lkt" => %{population_percent: 0.0025},
53+
"lkt" => %{population_percent: 0.0024},
5454
"mus" => %{population_percent: 0.0012},
5555
"nv" => %{population_percent: 0.05},
5656
"osa" => %{population_percent: 0},
@@ -69,7 +69,7 @@ defmodule Cldr.TerritoryTest do
6969
paper_size: :us_letter,
7070
temperature: :ussystem
7171
},
72-
population: 332639000
72+
population: 341963000
7373
}
7474

7575
@eu [:AT, :BE, :CY, :CZ, :DE, :DK, :EE, :ES, :FI, :FR, :GR, :HR, :HU, :IE, :IT,
@@ -99,7 +99,7 @@ defmodule Cldr.TerritoryTest do
9999
end
100100

101101
test "locales with subdivisions" do
102-
assert 5384 == length(TestBackend.Cldr.Territory.available_subdivisions(@us))
102+
assert 5426 == length(TestBackend.Cldr.Territory.available_subdivisions(@us))
103103
end
104104
end
105105

@@ -585,9 +585,9 @@ defmodule Cldr.TerritoryTest do
585585
end
586586

587587
test "with invalid params" do
588-
assert {:error, {Cldr.UnknownTerritoryError, "No territory code for \"Unknown Country\" could be found in locale :en"}} ==
588+
assert {:error, {Cldr.UnknownTerritoryError, "No territory code for \"Unknown Country\" could be found in locale :en"}} ==
589589
Territory.to_territory_code("Unknown Country", "en", TestBackend.Cldr)
590-
assert {:error, {Cldr.InvalidLanguageError, "The language \"zzz\" is invalid"}} ==
590+
assert {:error, {Cldr.InvalidLanguageError, "The language \"zzz\" is invalid"}} ==
591591
Territory.to_territory_code("United Kingdom", "zzz", TestBackend.Cldr)
592592
end
593593
end

0 commit comments

Comments
 (0)