Class: Workarea::Pricing::Discount::ProductAttribute::ItemQualifier
- Inherits:
-
Object
- Object
- Workarea::Pricing::Discount::ProductAttribute::ItemQualifier
- Defined in:
- app/models/workarea/pricing/discount/product_attribute/item_qualifier.rb
Overview
This class determines whether an item can qualify for a Workarea::Pricing::Discount::ProductAttribute discount.
Instance Attribute Summary collapse
-
#discount ⇒ Object
readonly
Returns the value of attribute discount.
-
#item ⇒ Object
readonly
Returns the value of attribute item.
Instance Method Summary collapse
-
#initialize(discount, item) ⇒ ItemQualifier
constructor
A new instance of ItemQualifier.
-
#qualifies? ⇒ Boolean
Whether the item qualifies, as defined by an optionaize comparision of keys and value or any element of the array if the item has an array.
Constructor Details
#initialize(discount, item) ⇒ ItemQualifier
Returns a new instance of ItemQualifier.
11 12 13 14 |
# File 'app/models/workarea/pricing/discount/product_attribute/item_qualifier.rb', line 11 def initialize(discount, item) @discount = discount @item = item end |
Instance Attribute Details
#discount ⇒ Object (readonly)
Returns the value of attribute discount.
8 9 10 |
# File 'app/models/workarea/pricing/discount/product_attribute/item_qualifier.rb', line 8 def discount @discount end |
#item ⇒ Object (readonly)
Returns the value of attribute item.
8 9 10 |
# File 'app/models/workarea/pricing/discount/product_attribute/item_qualifier.rb', line 8 def item @item end |
Instance Method Details
#qualifies? ⇒ Boolean
Whether the item qualifies, as defined by an optionaize comparision of keys and value or any element of the array if the item has an array.
22 23 24 25 26 27 28 29 30 31 32 |
# File 'app/models/workarea/pricing/discount/product_attribute/item_qualifier.rb', line 22 def qualifies? !!details.detect do |key, value| next unless key.to_s.optionize == attribute_name.optionize if value.respond_to?(:any?) value.any? { |v| v.to_s.optionize == attribute_value.optionize } else value.to_s.optionize == attribute_value.optionize end end end |