Class: ItunesReceiptMock::Purchase

Inherits:
Object
  • Object
show all
Includes:
Mixins
Defined in:
lib/itunes_receipt_mock/purchase.rb

Overview

ItunesReceiptMock::Purchase

Direct Known Subclasses

Subscription

Constant Summary collapse

PURCHASE_DEFAULTS =
{
  receipt: nil,
  product_id: nil,
  quantity: 1,
  transaction_id: proc { receipt.transactions.next_transaction_id },
  original_transaction_id: proc { transaction_id },
  purchase_date: proc { Time.now },
  original_purchase_date: proc { purchase_date },
  is_trial_period: false,
  in_app: true
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Purchase

Returns a new instance of Purchase.



28
29
30
31
32
# File 'lib/itunes_receipt_mock/purchase.rb', line 28

def initialize(options = {})
  send_defaults(PURCHASE_DEFAULTS, options)
  fail MissingArgumentError, 'product_id is required' unless @product_id
  fail MissingArgumentError, 'receipt is required' unless @receipt
end

Instance Attribute Details

#in_appObject Also known as: in_app?

Returns the value of attribute in_app.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def in_app
  @in_app
end

#is_trial_periodObject

Returns the value of attribute is_trial_period.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def is_trial_period
  @is_trial_period
end

#original_purchase_dateObject

Returns the value of attribute original_purchase_date.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def original_purchase_date
  @original_purchase_date
end

#original_transaction_idObject

Returns the value of attribute original_transaction_id.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def original_transaction_id
  @original_transaction_id
end

#product_idObject

Returns the value of attribute product_id.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def product_id
  @product_id
end

#purchase_dateObject

Returns the value of attribute purchase_date.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def purchase_date
  @purchase_date
end

#quantityObject

Returns the value of attribute quantity.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def quantity
  @quantity
end

#receiptObject

Returns the value of attribute receipt.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def receipt
  @receipt
end

#transaction_idObject

Returns the value of attribute transaction_id.



21
22
23
# File 'lib/itunes_receipt_mock/purchase.rb', line 21

def transaction_id
  @transaction_id
end

Instance Method Details

#as_jsonObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/itunes_receipt_mock/purchase.rb', line 34

def as_json
  {
    'quantity' => quantity.to_s,
    'product_id' => product_id,
    'transaction_id' => transaction_id.to_s,
    'original_transaction_id' => original_transaction_id.to_s,
    'is_trial_period' => is_trial_period.to_s
  }
    .merge(date_attrs('purchase', purchase_date))
    .merge(date_attrs('original_purchase', original_purchase_date))
end