From e16df2777ac0cd7573b84d44d37bdceee66f0a46 Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Mon, 30 Oct 2023 21:53:59 +0100 Subject: [PATCH] optimize DataPresenter#checkout_adjustments reduce the complexity of the method --- app/models/invoice/data_presenter.rb | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/app/models/invoice/data_presenter.rb b/app/models/invoice/data_presenter.rb index 0c2c930c97..708235968c 100644 --- a/app/models/invoice/data_presenter.rb +++ b/app/models/invoice/data_presenter.rb @@ -50,27 +50,19 @@ class Invoice Time.zone.parse(data[:completed_at]) end - def checkout_adjustments(exclude: [], reject_zero_amount: true) - adjustments = all_eligible_adjustments.map(&:clone) + def checkout_adjustments(exclude: []) + adjustments = all_eligible_adjustments + .reject { |a| a.originator.type == 'Spree::TaxRate' } + .map(&:clone) - adjustments.reject! { |a| a.originator.type == 'Spree::TaxRate' } + adjustments.reject! { |a| a.amount == 0 } + [:line_item, :shipment].each do |type| + next unless exclude.include? type - if exclude.include? :line_item adjustments.reject! { |a| - a.adjustable_type == 'Spree::LineItem' + a.adjustable_type == "Spree::#{type.to_s.classify}" } end - - if exclude.include? :shipment - adjustments.reject! { |a| - a.adjustable_type == 'Spree::Shipment' - } - end - - if reject_zero_amount - adjustments.reject! { |a| a.amount == 0 } - end - adjustments end