Sha256: bfdf3c124e1b3cb727b662d085c71047e4e74bb3a0cc64557052b87081b0487e
Contents?: true
Size: 769 Bytes
Versions: 5
Compression:
Stored size: 769 Bytes
Contents
# frozen_string_literal: true module SolidusPromotions module Conditions class OptionValue < Condition include LineItemApplicableOrderLevelCondition preference :eligible_values, :hash def order_eligible?(order) order.line_items.any? { |item| line_item_eligible?(item) } end def line_item_eligible?(line_item) LineItemOptionValue.new(preferred_eligible_values: preferred_eligible_values).eligible?(line_item) end def preferred_eligible_values values = preferences[:eligible_values] || {} values.keys.map(&:to_i).zip( values.values.map do |value| (value.is_a?(Array) ? value : value.split(",")).map(&:to_i) end ).to_h end end end end
Version data entries
5 entries across 5 versions & 1 rubygems