Module: Spree::Order::Digital
- Included in:
- Spree::Order
- Defined in:
- app/models/spree/order/digital.rb
Instance Method Summary collapse
- #create_digital_links ⇒ Object
-
#digital? ⇒ Boolean
Returns true if all order line items are digital.
-
#digital_line_items ⇒ Array<Spree::LineItem>
Returns all line items with digital assets.
-
#digital_links ⇒ Array<Spree::DigitalLink>
Returns all digital links for the order.
-
#some_digital? ⇒ Boolean
Returns true if any order line item is digital.
-
#with_digital_assets? ⇒ Boolean
Returns true if any order line item has digital assets.
Instance Method Details
#create_digital_links ⇒ Object
43 44 45 46 47 48 49 |
# File 'app/models/spree/order/digital.rb', line 43 def create_digital_links digital_line_items.includes(variant: :digitals).each do |line_item| line_item.variant.digitals.each do |digital| line_item.digital_links.create!(digital: digital) end end end |
#digital? ⇒ Boolean
Returns true if all order line items are digital
7 8 9 10 11 12 13 |
# File 'app/models/spree/order/digital.rb', line 7 def digital? if line_items.empty? false else line_items.all?(&:digital?) end end |
#digital_line_items ⇒ Array<Spree::LineItem>
Returns all line items with digital assets
32 33 34 |
# File 'app/models/spree/order/digital.rb', line 32 def digital_line_items line_items.with_digital_assets.distinct end |
#digital_links ⇒ Array<Spree::DigitalLink>
Returns all digital links for the order
39 40 41 |
# File 'app/models/spree/order/digital.rb', line 39 def digital_links digital_line_items.map(&:digital_links).flatten end |
#some_digital? ⇒ Boolean
Returns true if any order line item is digital
18 19 20 |
# File 'app/models/spree/order/digital.rb', line 18 def some_digital? line_items.any?(&:digital?) end |
#with_digital_assets? ⇒ Boolean
Returns true if any order line item has digital assets
25 26 27 |
# File 'app/models/spree/order/digital.rb', line 25 def with_digital_assets? line_items.any?(&:with_digital_assets?) end |