From 9b691e1ef3d2be80197c058b3952a88c5e13079f Mon Sep 17 00:00:00 2001 From: Oleksii Rytov Date: Mon, 11 Dec 2023 18:19:39 +0100 Subject: [PATCH 1/4] bump readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fd47dbe..ab9407d 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ The package can be installed by adding `flagpack` to your list of dependencies i ```elixir def deps do [ - {:flagpack, "~> 0.1.0"} + {:flagpack, "~> 0.3.0"} ] end ``` From c9d0a6822e0dc17bd92c9ca2019b39982021ab02 Mon Sep 17 00:00:00 2001 From: Oleksii Rytov Date: Mon, 11 Dec 2023 18:28:21 +0100 Subject: [PATCH 2/4] tool-version, namespaced Helpers and idea to gitignore --- .gitignore | 4 +++- .tool-versions | 1 + assets/flagpack.exs | 2 +- lib/helpers.ex | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 .tool-versions diff --git a/.gitignore b/.gitignore index 5514d69..8fe4575 100644 --- a/.gitignore +++ b/.gitignore @@ -25,4 +25,6 @@ flagpack-*.tar # Temporary files, for example, from tests. /tmp/ -.DS_Store \ No newline at end of file +.DS_Store + +.idea/ diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..785b859 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +elixir 1.14.1 diff --git a/assets/flagpack.exs b/assets/flagpack.exs index c59a602..056cd76 100644 --- a/assets/flagpack.exs +++ b/assets/flagpack.exs @@ -25,7 +25,7 @@ defmodule Flagpack do <%= for %{func: func, alpha: alpha, svg: svg} <- @flags do %> @doc """ - Renders the <%= Helpers.country_name_by_alpha(alpha) %> flag. + Renders the <%= Flagpack.Helpers.country_name_by_alpha(alpha) %> flag. ## Examples /> diff --git a/lib/helpers.ex b/lib/helpers.ex index 7a24f43..265de31 100644 --- a/lib/helpers.ex +++ b/lib/helpers.ex @@ -1,4 +1,4 @@ -defmodule Helpers do +defmodule Flagpack.Helpers do @country_codes [ %{country_name: "Andorra", alpha2: "AD", alpha3: "AND", numeric: "020"}, %{ From 4d173220923a2a2c41cc6d6796b01683dcfcece5 Mon Sep 17 00:00:00 2001 From: Oleksii Rytov Date: Mon, 11 Dec 2023 18:37:13 +0100 Subject: [PATCH 3/4] Helers.country_alpha3_by_alpha2/1 --- lib/helpers.ex | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/helpers.ex b/lib/helpers.ex index 265de31..de4a353 100644 --- a/lib/helpers.ex +++ b/lib/helpers.ex @@ -517,6 +517,13 @@ defmodule Flagpack.Helpers do |> Map.get(:country_name) end + def country_alpha3_by_alpha2(alpha2) do + alpha2 = String.upcase(alpha2) + + Enum.find(@country_codes, &(get_alpha2(&1) == alpha2)) + |> Map.get(:alpha3) + end + defp get_alpha2(country), do: Map.get(country, :alpha2, "") defp get_alpha3(country), do: Map.get(country, :alpha3, "") end From d41af0b940fced0ad0d2c726c34c3527233704f0 Mon Sep 17 00:00:00 2001 From: Oleksii Rytov Date: Mon, 11 Dec 2023 18:52:42 +0100 Subject: [PATCH 4/4] handle cases when nothing was found --- lib/helpers.ex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/helpers.ex b/lib/helpers.ex index de4a353..5c67dd1 100644 --- a/lib/helpers.ex +++ b/lib/helpers.ex @@ -520,8 +520,10 @@ defmodule Flagpack.Helpers do def country_alpha3_by_alpha2(alpha2) do alpha2 = String.upcase(alpha2) - Enum.find(@country_codes, &(get_alpha2(&1) == alpha2)) - |> Map.get(:alpha3) + case Enum.find(@country_codes, &(get_alpha2(&1) == alpha2)) do + nil -> nil + info = %{} -> Map.get(info, :alpha3) + end end defp get_alpha2(country), do: Map.get(country, :alpha2, "")