Class: SolidusSubscriptions::LineItem

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Interval
Defined in:
app/models/solidus_subscriptions/line_item.rb

Instance Method Summary collapse

Methods included from Interval

included

Instance Method Details

#as_json(**options) ⇒ Object



39
40
41
42
# File 'app/models/solidus_subscriptions/line_item.rb', line 39

def as_json(**options)
  options[:methods] ||= [:dummy_line_item, :next_actionable_date]
  super(options)
end

#dummy_line_itemObject

Get a placeholder line item for calculating the values of future subscription orders. It is frozen and cannot be saved



46
47
48
49
50
51
52
53
# File 'app/models/solidus_subscriptions/line_item.rb', line 46

def dummy_line_item
  li = LineItemBuilder.new([self]).spree_line_items.first
  return unless li

  li.order = dummy_order
  li.validate
  li.freeze
end

#intervalObject



55
56
57
# File 'app/models/solidus_subscriptions/line_item.rb', line 55

def interval
  subscription.try!(:interval) || super
end

#next_actionable_dateObject



35
36
37
# File 'app/models/solidus_subscriptions/line_item.rb', line 35

def next_actionable_date
  dummy_subscription.next_actionable_date
end