Class: Charger::LineItem

Inherits:
Object
  • Object
show all
Includes:
Resource
Defined in:
lib/charger/line_item.rb

Direct Known Subclasses

Metered, OnOff, QuantityBased

Defined Under Namespace

Classes: Metered, OnOff, QuantityBased

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_by_subscription_id(id) ⇒ Array<LineItem>

Parameters:

  • id (Integer)

    the id of the subscription

Returns:



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/charger/line_item.rb', line 14

def self.find_by_subscription_id id
  items = []

  client.get("subscriptions/#{id}/components").each do |data|
    case data['component']['kind']
    when 'metered_component'
      items << LineItem::Metered.new(data['component'])
    when 'quantity_based_component'
      items << LineItem::QuantityBased.new(data['component'])
    when 'on_off_component'
      items << LineItem::OnOff.new(data['component'])
    end
  end

  items
end

Instance Method Details

#allocated?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/charger/line_item.rb', line 66

def allocated?
  false
end

#component(force = false) ⇒ Component

Parameters:

  • force (Boolean) (defaults to: false)

    uncache the results from chargify

Returns:



53
54
55
56
57
58
59
60
61
62
63
# File 'lib/charger/line_item.rb', line 53

def component force=false
  @component = nil if force

  unless @component
    product = subscription.product
    family = product.product_family
    @component = Component.find(family.id, component_id)
  end

  @component
end

#component=(comp) ⇒ Object



47
48
49
# File 'lib/charger/line_item.rb', line 47

def component= comp
  @component = comp
end

#subscription(force = false) ⇒ Subscription

Parameters:

  • force (Boolean) (defaults to: false)

    uncache the results from chargify

Returns:



42
43
44
45
# File 'lib/charger/line_item.rb', line 42

def subscription force=false
  @subscription = nil if force
  @subscription ||= Subscription.find(subscription_id)
end

#subscription=(sub) ⇒ Object



36
37
38
# File 'lib/charger/line_item.rb', line 36

def subscription= sub
  @subscription = sub
end

#totalFloat

Returns:

  • (Float)


32
33
34
# File 'lib/charger/line_item.rb', line 32

def total
  0.0
end