Class: Ios::Receipt::Result
- Inherits:
-
Object
- Object
- Ios::Receipt::Result
- Defined in:
- lib/ios/receipt/result.rb
Instance Attribute Summary collapse
-
#application_version ⇒ Object
readonly
Returns the value of attribute application_version.
-
#bundle_id ⇒ Object
readonly
Returns the value of attribute bundle_id.
-
#environment ⇒ Object
readonly
Returns the value of attribute environment.
-
#in_app ⇒ Object
readonly
Returns the value of attribute in_app.
-
#latest ⇒ Object
readonly
Returns the value of attribute latest.
-
#original_application_version ⇒ Object
readonly
Returns the value of attribute original_application_version.
-
#receipt_style ⇒ Object
readonly
Returns the value of attribute receipt_style.
-
#result ⇒ Object
readonly
Returns the value of attribute result.
Instance Method Summary collapse
- #active_recurring_receipts ⇒ Object
- #expired? ⇒ Boolean
- #in_trial_receipts ⇒ Object
-
#initialize(result, environment = nil) ⇒ Result
constructor
A new instance of Result.
- #next_recurring_receipt ⇒ Object
- #once_off_receipts ⇒ Object
- #production? ⇒ Boolean
- #recurring_receipts ⇒ Object
- #sandbox? ⇒ Boolean
- #transaction_ids ⇒ Object
Constructor Details
#initialize(result, environment = nil) ⇒ Result
Returns a new instance of Result.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/ios/receipt/result.rb', line 5 def initialize(result, environment=nil) @result = result @status = result['status'] check_status! @environment = (result['environment'] || environment).try(:downcase).try(:to_sym) raise Ios::Receipt::Exceptions::InvalidConfiguration if @environment.nil? receipt = result['receipt'] @bundle_id = receipt['bid'] || receipt['bundle_id'] @application_version = receipt['application_version'] @original_application_version = receipt['original_application_version'] @receipt_style = receipt['original_transaction_id'] ? :ios6 : :ios7 if @receipt_style == :ios6 latest = result['latest_receipt_info'] || result['latest_expired_receipt_info'] @latest = if latest [ Ios::Receipt::Receipt.new(latest) ] elsif receipt['original_transaction_id'] [ Ios::Receipt::Receipt.new(receipt) ] else [] end end @in_app = [receipt['in_app'] || []].flatten.compact.collect { |r| Ios::Receipt::Receipt.new r } @latest = [result['latest_receipt_info'] || []].flatten.compact.collect { |r| Ios::Receipt::Receipt.new r } unless @latest end |
Instance Attribute Details
#application_version ⇒ Object (readonly)
Returns the value of attribute application_version.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def application_version @application_version end |
#bundle_id ⇒ Object (readonly)
Returns the value of attribute bundle_id.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def bundle_id @bundle_id end |
#environment ⇒ Object (readonly)
Returns the value of attribute environment.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def environment @environment end |
#in_app ⇒ Object (readonly)
Returns the value of attribute in_app.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def in_app @in_app end |
#latest ⇒ Object (readonly)
Returns the value of attribute latest.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def latest @latest end |
#original_application_version ⇒ Object (readonly)
Returns the value of attribute original_application_version.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def original_application_version @original_application_version end |
#receipt_style ⇒ Object (readonly)
Returns the value of attribute receipt_style.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def receipt_style @receipt_style end |
#result ⇒ Object (readonly)
Returns the value of attribute result.
2 3 4 |
# File 'lib/ios/receipt/result.rb', line 2 def result @result end |
Instance Method Details
#active_recurring_receipts ⇒ Object
54 55 56 |
# File 'lib/ios/receipt/result.rb', line 54 def active_recurring_receipts @active_recurring_receipts ||= recurring_receipts.select { |r| r.active? } end |
#expired? ⇒ Boolean
42 43 44 |
# File 'lib/ios/receipt/result.rb', line 42 def expired? @status == 21006 end |
#in_trial_receipts ⇒ Object
62 63 64 |
# File 'lib/ios/receipt/result.rb', line 62 def in_trial_receipts @in_trial_receipts ||= active_recurring_receipts.select { |r| r.in_trial? } end |
#next_recurring_receipt ⇒ Object
58 59 60 |
# File 'lib/ios/receipt/result.rb', line 58 def next_recurring_receipt @next_recurring_receipt ||= active_recurring_receipts.sort_by { |r| r.expires_date }.first end |
#once_off_receipts ⇒ Object
38 39 40 |
# File 'lib/ios/receipt/result.rb', line 38 def once_off_receipts @once_offs ||= @latest.select { |r| r.once_off? } end |
#production? ⇒ Boolean
50 51 52 |
# File 'lib/ios/receipt/result.rb', line 50 def production? @environment == :production end |
#recurring_receipts ⇒ Object
34 35 36 |
# File 'lib/ios/receipt/result.rb', line 34 def recurring_receipts @recurring ||= @latest.select { |r| r.recurring? } end |
#sandbox? ⇒ Boolean
46 47 48 |
# File 'lib/ios/receipt/result.rb', line 46 def sandbox? @environment == :sandbox end |
#transaction_ids ⇒ Object
66 67 68 |
# File 'lib/ios/receipt/result.rb', line 66 def transaction_ids (@in_app.collect { |r| r.transaction_id } + @latest.collect { |r| r.transaction_id }).flatten.compact.uniq end |