Class: SpreeCmCommissioner::PricingRules::Nationality
- Inherits:
-
SpreeCmCommissioner::PricingRule
- Object
- Spree::Base
- Base
- SpreeCmCommissioner::PricingRule
- SpreeCmCommissioner::PricingRules::Nationality
- Defined in:
- app/models/spree_cm_commissioner/pricing_rules/nationality.rb
Constant Summary collapse
- RULE_TYPES =
%w[all any none].freeze
Instance Method Summary collapse
-
#eligible?(line_item) ⇒ Boolean
rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity.
Methods inherited from SpreeCmCommissioner::PricingRule
Instance Method Details
#eligible?(line_item) ⇒ Boolean
rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'app/models/spree_cm_commissioner/pricing_rules/nationality.rb', line 8 def eligible?(line_item) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity return false if nationalities.blank? || line_item.guests.blank? targets = Array.wrap(nationalities).map(&:downcase) guest_nationalities = line_item.guests.map { |g| guest_nationality(g) }.compact return false if guest_nationalities.empty? case rule_type when 'all' guest_nationalities.all? { |n| targets.include?(n) } when 'any' guest_nationalities.any? { |n| targets.include?(n) } when 'none' guest_nationalities.none? { |n| targets.include?(n) } else false end end |