solidusio-contrib/solidus_volume_pricing

View on GitHub
app/decorators/helpers/solidus_volume_pricing/spree/base_helper_decorator.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

module SolidusVolumePricing
  module Spree
    module BaseHelperDecorator
      def self.prepended(base)
        base.module_eval do
          def display_volume_price(variant, quantity = 1, user = nil)
            price_display(variant, quantity: quantity, user: user).price_string
          end

          def display_volume_price_earning_percent(variant, quantity = 1, user = nil)
            price_display(variant, quantity: quantity, user: user).earning_percent_string
          end

          def display_volume_price_earning_amount(variant, quantity = 1, user = nil)
            price_display(variant, quantity: quantity, user: user).earning_amount_string
          end

          private

          def price_display(variant, quantity:, user:)
            SolidusVolumePricing::PriceDisplay.new(variant, quantity: quantity, user: user)
          end
        end
      end

      ::Spree::BaseHelper.prepend self
    end
  end
end