Class: SolidusPromotions::CouponCodeNormalizer

Inherits:
Object
  • Object
show all
Defined in:
app/models/concerns/solidus_promotions/coupon_code_normalizer.rb

Overview

Normalizes coupon codes before saving or looking up promotions.

By default, this class strips whitespace and downcases the code to ensure case-insensitive behavior. You can override this class or provide a custom normalizer class to change behavior (e.g., case-sensitive codes) via:

SolidusPromotions.configure do |config|
  config.coupon_code_normalizer_class = YourCustomNormalizer
end

Examples:

Default usage

CouponCodeNormalizer.call(" SAVE20 ") # => "save20"

Custom case-sensitive usage

class CaseSensitiveNormalizer
  def self.call(value)
    value&.strip
  end
end

SolidusPromotions.configure do |config|
  config.coupon_code_normalizer_class = CaseSensitiveNormalizer
end

Class Method Summary collapse

Class Method Details

.call(value) ⇒ String?

Normalizes the given coupon code.

Parameters:

  • value (String, nil)

    the coupon code to normalize

Returns:

  • (String, nil)

    the normalized coupon code



33
34
35
# File 'app/models/concerns/solidus_promotions/coupon_code_normalizer.rb', line 33

def self.call(value)
  value&.strip&.downcase
end