Sha256: f518abb60dfa67818fd26fcf507b33af1b8eb8f7a6e7174a7661a300994dfe5d

Contents?: true

Size: 393 Bytes

Versions: 5

Compression:

Stored size: 393 Bytes

Contents

# frozen_string_literal: true

module SolidusPromotions
  class OrderAdjuster
    class ChooseDiscounts
      attr_reader :discounts

      def initialize(discounts)
        @discounts = discounts
      end

      def call
        Array.wrap(
          discounts.min_by do |discount|
            [discount.amount, -discount.source&.id.to_i]
          end
        )
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
solidus_promotions-4.5.1 app/models/solidus_promotions/order_adjuster/choose_discounts.rb
solidus_promotions-4.5.0 app/models/solidus_promotions/order_adjuster/choose_discounts.rb
solidus_promotions-4.4.2 app/models/solidus_promotions/order_adjuster/choose_discounts.rb
solidus_promotions-4.4.1 app/models/solidus_promotions/order_adjuster/choose_discounts.rb
solidus_promotions-4.4.0 app/models/solidus_promotions/order_adjuster/choose_discounts.rb