Class: ItunesReceiptMock::Subscription

Inherits:
Purchase
  • Object
show all
Defined in:
lib/itunes_receipt_mock/subscription.rb

Overview

ItunesReceiptMock::Subscription

Constant Summary collapse

SUBSCRIPTION_DEFAULTS =
{
  expires_date: nil,
  web_order_line_item_id: proc do
    receipt.transactions.next_web_order_line_item_id
  end
}

Constants inherited from Purchase

Purchase::PURCHASE_DEFAULTS

Instance Attribute Summary collapse

Attributes inherited from Purchase

#in_app, #is_trial_period, #original_purchase_date, #original_transaction_id, #product_id, #purchase_date, #quantity, #receipt, #transaction_id

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Subscription

Returns a new instance of Subscription.



16
17
18
19
20
# File 'lib/itunes_receipt_mock/subscription.rb', line 16

def initialize(options)
  super
  send_defaults(SUBSCRIPTION_DEFAULTS, options)
  fail MissingArgumentError, 'expires_date is required' unless @expires_date
end

Instance Attribute Details

#expires_dateObject

Returns the value of attribute expires_date.



14
15
16
# File 'lib/itunes_receipt_mock/subscription.rb', line 14

def expires_date
  @expires_date
end

#web_order_line_item_idObject

Returns the value of attribute web_order_line_item_id.



14
15
16
# File 'lib/itunes_receipt_mock/subscription.rb', line 14

def web_order_line_item_id
  @web_order_line_item_id
end

Instance Method Details

#as_jsonObject



35
36
37
38
39
# File 'lib/itunes_receipt_mock/subscription.rb', line 35

def as_json
  super.merge(
    'web_order_line_item_id' => web_order_line_item_id.to_s
  ).merge(date_attrs('expires', expires_date))
end

#renew(options) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/itunes_receipt_mock/subscription.rb', line 22

def renew(options)
  attrs = {
    receipt: receipt,
    in_app: false,
    quantity: quantity,
    product_id: product_id,
    original_transaction_id: transaction_id,
    original_purchase_date: purchase_date,
    is_trial_period: is_trial_period
  }.merge(options)
  receipt.transactions.create attrs
end