From 812d8cac4a24c2c5a9adfa7e90ee1a20f960f5b0 Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Tue, 18 Jun 2019 19:15:25 +0200 Subject: [PATCH] Make complex method a bit more readable --- lib/open_food_network/order_grouper.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/open_food_network/order_grouper.rb b/lib/open_food_network/order_grouper.rb index a5da5085b9..5225f3d34e 100644 --- a/lib/open_food_network/order_grouper.rb +++ b/lib/open_food_network/order_grouper.rb @@ -18,11 +18,17 @@ module OpenFoodNetwork def group_and_sort(rule, remaining_rules, items) branch = {} groups = items.group_by { |item| rule[:group_by].call(item) } + sorted_groups = groups.sort_by { |key, _value| rule[:sort_by].call(key) } + sorted_groups.each do |property, items_by_property| branch[property] = build_tree(items_by_property, remaining_rules) - branch[property][:summary_row] = { items: items_by_property, columns: rule[:summary_columns] } unless rule[:summary_columns].nil? || is_leaf_node(branch[property]) + + unless rule[:summary_columns].nil? || is_leaf_node(branch[property]) + branch[property][:summary_row] = { items: items_by_property, columns: rule[:summary_columns] } + end end + branch end