Class: Spree::Promotion::Rules::OptionValue
Constant Summary
collapse
- MATCH_POLICIES =
%w(any)
Instance Method Summary
collapse
#eligibility_errors, for, #human_description, #human_name, #key
Instance Method Details
#actionable?(line_item) ⇒ Boolean
24
25
26
27
28
|
# File 'app/models/spree/promotion/rules/option_value.rb', line 24
def actionable?(line_item)
return false if eligible_option_value_variant_ids.empty?
Spree::OptionValueVariant.where(id: eligible_option_value_variant_ids, variant_id: line_item.variant_id).exists?
end
|
#applicable?(promotable) ⇒ Boolean
11
12
13
|
# File 'app/models/spree/promotion/rules/option_value.rb', line 11
def applicable?(promotable)
promotable.is_a?(Spree::Order)
end
|
#eligible?(promotable, _options = {}) ⇒ Boolean
15
16
17
18
19
20
21
22
|
# File 'app/models/spree/promotion/rules/option_value.rb', line 15
def eligible?(promotable, _options = {})
return false if eligible_option_value_variant_ids.empty?
case preferred_match_policy
when 'any'
Spree::OptionValueVariant.where(id: eligible_option_value_variant_ids, variant_id: promotable.variant_ids).exists?
end
end
|