From f2affe80cde0db0cf9c87726579ea666ff3705b7 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 7 Oct 2019 10:13:21 +0100 Subject: [PATCH] Reduce assignment branching and complexity for ProductsRenderer#products --- lib/open_food_network/products_renderer.rb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/open_food_network/products_renderer.rb b/lib/open_food_network/products_renderer.rb index 48a35a1b11..a3642a26b5 100644 --- a/lib/open_food_network/products_renderer.rb +++ b/lib/open_food_network/products_renderer.rb @@ -35,15 +35,20 @@ module OpenFoodNetwork return unless order_cycle @products ||= begin - scoper = ScopeProductToHub.new(distributor) + results = distributed_products.products_relation.order(taxon_order) - distributed_products.products_relation. - order(taxon_order). - ransack(params[:q]).result.page(params[:page] || 1).per(params[:per_page] || 10). - each { |product| scoper.scope(product) } + filter_and_paginate(results).each { |product| product_scoper.scope(product) } end end + def product_scoper + ScopeProductToHub.new(distributor) + end + + def filter_and_paginate(query) + query.ransack(params[:q]).result.page(params[:page] || 1).per(params[:per_page] || 10) + end + def distributed_products OrderCycleDistributedProducts.new(distributor, order_cycle, customer) end