Sha256: 242626dccd3ab646b9b5a0074dee1b787af78364dcd06293f72045a0bf7e88d8

Contents?: true

Size: 917 Bytes

Versions: 33

Compression:

Stored size: 917 Bytes

Contents

module Spree
  module Filters
    class QuantifiedPriceRangePresenter
      ALLOWED_QUANTIFIERS = [
        :less_than,
        :more_than
      ].freeze

      def initialize(price:, quantifier:)
        if ALLOWED_QUANTIFIERS.exclude?(quantifier.to_sym)
          raise ArgumentError, "quantifier must be one of: #{ALLOWED_QUANTIFIERS.join(', ')}"
        end

        @price = price
        @quantifier = quantifier.to_sym
      end

      def to_param
        case quantifier
        when :less_than
          less_than_param
        when :more_than
          more_than_param
        end
      end

      def to_s
        "#{I18n.t("activerecord.attributes.spree/product.#{quantifier}")} #{price}"
      end

      private

      attr_reader :price, :quantifier

      def less_than_param
        "0-#{price.to_i}"
      end

      def more_than_param
        "#{price.to_i}-Infinity"
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
spree_core-4.10.1 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.10.0 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.9.0 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.8.3 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.8.2 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.7.3 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.6.6 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.5.5 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.3.3 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.4.1 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.5.4 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.6.5 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.7.2 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.7.1 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.6.4 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.7.0 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.6.3 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.6.2 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.6.1 app/presenters/spree/filters/quantified_price_range_presenter.rb
spree_core-4.6.0 app/presenters/spree/filters/quantified_price_range_presenter.rb