Class: Spree::PromotionRule
- Inherits:
-
Base
- Object
- ApplicationRecord
- Base
- Spree::PromotionRule
show all
- Defined in:
- app/models/spree/promotion_rule.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
page, spree_base_scopes
#clear_preferences, #default_preferences, #defined_preferences, #get_preference, #has_preference!, #has_preference?, #preference_default, #preference_type, #set_preference
Class Method Details
.for(promotable) ⇒ Object
10
11
12
|
# File 'app/models/spree/promotion_rule.rb', line 10
def self.for(promotable)
all.select { |rule| rule.applicable?(promotable) }
end
|
Instance Method Details
#actionable?(line_item) ⇒ Boolean
This states if a promotion can be applied to the specified line item It is true by default, but can be overridden by promotion rules to provide conditions
24
25
26
|
# File 'app/models/spree/promotion_rule.rb', line 24
def actionable?(line_item)
true
end
|
#applicable?(promotable) ⇒ Boolean
14
15
16
|
# File 'app/models/spree/promotion_rule.rb', line 14
def applicable?(promotable)
raise 'applicable? should be implemented in a sub-class of Spree::PromotionRule'
end
|
#eligibility_errors ⇒ Object
28
29
30
|
# File 'app/models/spree/promotion_rule.rb', line 28
def eligibility_errors
@eligibility_errors ||= ActiveModel::Errors.new(self)
end
|
#eligible?(promotable, options = {}) ⇒ Boolean
18
19
20
|
# File 'app/models/spree/promotion_rule.rb', line 18
def eligible?(promotable, options = {})
raise 'eligible? should be implemented in a sub-class of Spree::PromotionRule'
end
|