From 0fc8c56c413874d8923dca24f197a4cd040edeea Mon Sep 17 00:00:00 2001 From: Joao P Dubas Date: Mon, 7 Oct 2024 19:22:14 +0000 Subject: [PATCH] chore(growth): add separated method to merge genders data This makes easier to test aggregation logic for multiple gender configuration. --- lib/growth/indicators/download.ex | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/growth/indicators/download.ex b/lib/growth/indicators/download.ex index 14b2d76..bc24dbe 100644 --- a/lib/growth/indicators/download.ex +++ b/lib/growth/indicators/download.ex @@ -205,13 +205,17 @@ defmodule Growth.Indicators.Download do |> Task.await_many() end - def process_measure( - {measure, - %{ - female: %{age_tables: female_urls, expanded_tables: e_female_urls}, - male: %{age_tables: male_urls, expanded_tables: e_male_urls} - }} - ) do + def process_measure({measure, urls}) do + urls + |> process_genders() + |> as_csv() + |> save(measure) + end + + def process_genders(%{ + female: %{age_tables: female_urls, expanded_tables: e_female_urls}, + male: %{age_tables: male_urls, expanded_tables: e_male_urls} + }) do [ {:female, :age, female_urls}, {:male, :age, male_urls}, @@ -221,8 +225,6 @@ defmodule Growth.Indicators.Download do |> Enum.map(&Task.async(__MODULE__, :process_gender, [&1])) |> Task.await_many() |> merge() - |> as_csv() - |> save(measure) end def process_gender({gender, category, urls}) do