Sha256: 0ca8e280dbda73b5d4da009c2db726c953ba2fa658c45b681769154d85cb7135

Contents?: true

Size: 585 Bytes

Versions: 4

Compression:

Stored size: 585 Bytes

Contents

# frozen_string_literal: true

module SolidusFriendlyPromotions
  module Conditions
    module LineItemApplicableOrderCondition
      def self.included(klass)
        klass.preference :line_item_applicable, :boolean, default: true
      end

      def applicable?(promotable)
        promotable.is_a?(Spree::Order) || preferred_line_item_applicable && promotable.is_a?(Spree::LineItem)
      end

      def eligible?(promotable)
        send(:"#{promotable.class.name.demodulize.underscore}_eligible?", promotable)
      end

      def level
        :order
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_friendly_promotions-1.9.3 app/models/concerns/solidus_friendly_promotions/conditions/line_item_applicable_order_condition.rb
solidus_friendly_promotions-1.9.2 app/models/concerns/solidus_friendly_promotions/conditions/line_item_applicable_order_condition.rb
solidus_friendly_promotions-1.9.1 app/models/concerns/solidus_friendly_promotions/conditions/line_item_applicable_order_condition.rb
solidus_friendly_promotions-1.9.0 app/models/concerns/solidus_friendly_promotions/conditions/line_item_applicable_order_condition.rb