Sha256: e83b0b79e7ed520e86d5d34ad1da9a8b2aa5e19d248caf1b08129d8c920b7927

Contents?: true

Size: 481 Bytes

Versions: 3

Compression:

Stored size: 481 Bytes

Contents

# frozen_string_literal: true

module Spree
  module PromotionHandler
    class Page
      attr_reader :order, :path

      def initialize(order, path)
        @order = order
        @path = path.delete_prefix('/')
      end

      def activate
        if promotion && promotion.eligible?(order)
          promotion.activate(order:)
        end
      end

      private

      def promotion
        @promotion ||= Spree::Promotion.active.find_by(path:)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
solidus_legacy_promotions-4.4.2 app/models/spree/promotion_handler/page.rb
solidus_legacy_promotions-4.4.1 app/models/spree/promotion_handler/page.rb
solidus_legacy_promotions-4.4.0 app/models/spree/promotion_handler/page.rb