Sha256: 513d918815f4fc9402fcfe78bd0c10af1fcd2a77e69ecbe8dfbdf4dace06694f

Contents?: true

Size: 533 Bytes

Versions: 8

Compression:

Stored size: 533 Bytes

Contents

# Base class for all promotion rules
class PromotionRule < ActiveRecord::Base

  belongs_to :promotion
  
  scope :of_type, lambda {|t| {:conditions => {:type => t}}}
  
  def eligible?(order)
    raise 'eligible? should be implemented in a sub-class of Promotion::PromotionRule'
  end

  @rule_classes = nil
  @@rule_classes = Set.new
  def self.register
    @@rule_classes.add(self)
  end

  def self.rule_classes
    @@rule_classes.to_a
  end
  
  def self.rule_class_names
    PromotionRule.rule_classes.map(&:name)
  end
  
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
spree_promo-0.30.2 app/models/promotion_rule.rb
spree_promo-0.40.4 app/models/promotion_rule.rb
spree_promo-0.40.3 app/models/promotion_rule.rb
spree_promo-0.40.2 app/models/promotion_rule.rb
spree_promo-0.40.1 app/models/promotion_rule.rb
spree_promo-0.40.0 app/models/promotion_rule.rb
spree_promo-0.30.1 app/models/promotion_rule.rb
spree_promo-0.30.0 app/models/promotion_rule.rb