storekit 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ee9b3cd6f71b6dd6d5505efc6cc45d0bfde0126
4
- data.tar.gz: 39f312184c3d8e3f3a8559d61e97c405ddc9abc1
3
+ metadata.gz: 4e1d2bb2b6ba729076537651f5a98b779765ad04
4
+ data.tar.gz: 7a65720d751e32db9012fe082f9d2fddd1e2385d
5
5
  SHA512:
6
- metadata.gz: 7e917170d988f9120b46647d489ac718263dc0c345e3ed1929390868f8668fa5b6366457150f4d2f8abd8766f2ed84a89157b2b49ccda6a3cecab9bd8fb12fe7
7
- data.tar.gz: 9a9b9cd81e8089d56b8f5ce8afafdfa151edcba212e29ae34f9a4cd9ed733f2200fd3987a0df329339a55b31a579afa5cfa14b75038c9691eb3491cbc4335d4c
6
+ metadata.gz: 8ed87aff92bd47dfd02362ea1da4125bbda160ac303be0026deb063fe1fb18c70b695826bb0c5ee2da2db34a453645984cde0f077bdd7ec97d6e1835256fe734
7
+ data.tar.gz: 1fca716dc58a1f6ab57a230d83155236f0a18d6bb4d0b7932aad812215e1e110831ae75f4ee0e075d417390d8f1e8cfc8eed395ff46b9402b5aecff6cf783056
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.4.0
4
+ - 2.3.3
5
+ - 2.2
6
+ - 2.1
7
+ - 2.0
data/Gemfile CHANGED
@@ -1,3 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ group :development, :test do
4
+ gem 'rake'
5
+ end
6
+
3
7
  gemspec
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # storekit_ruby
2
2
 
3
+ [![Build Status](https://travis-ci.org/sujrd/storekit_ruby.svg?branch=master)](https://travis-ci.org/sujrd/storekit_ruby)
3
4
  [![Code Climate](https://codeclimate.com/github/sujrd/storekit_ruby/badges/gpa.svg)](https://codeclimate.com/github/sujrd/storekit_ruby)
4
5
  [![Gem Version](http://img.shields.io/gem/v/storekit.svg)](https://rubygems.org/gems/storekit)
5
6
 
@@ -7,7 +8,7 @@ This is a no frills gem for verifying Apple App Store In App Purchase receipts.
7
8
 
8
9
  ## Installation
9
10
 
10
- $ gem install storekit
11
+ $ gem install storekit
11
12
 
12
13
  ## Usage
13
14
 
@@ -25,5 +25,32 @@ module StoreKit
25
25
  def server_error?
26
26
  [21004, 21007, 21008].include?(status_code) || message == 'Unknown error'
27
27
  end
28
+
29
+ def self.new status_code
30
+ return super if self != ValidationError
31
+
32
+ type =
33
+ case status_code
34
+ when 21000 then InvalidJsonError
35
+ when 21002 then InvalidReceiptFormatError
36
+ when 21003 then ReceiptAuthenticationError
37
+ when 21004 then InvalidSharedSecretError
38
+ when 21005 then ReceiptServerUnavailableError
39
+ when 21006 then SubscriptionExpiredError
40
+ when 21007 then TestEnvironmentRequiredError
41
+ when 21008 then ProductionEnvironmentRequiredError
42
+ end
43
+
44
+ type.is_a?(NilClass) && super || type.new(status_code)
45
+ end
28
46
  end
47
+
48
+ class InvalidJsonError < ValidationError; end
49
+ class InvalidReceiptFormatError < ValidationError; end
50
+ class ReceiptAuthenticationError < ValidationError; end
51
+ class InvalidSharedSecretError < ValidationError; end
52
+ class ReceiptServerUnavailableError < ValidationError; end
53
+ class SubscriptionExpiredError < ValidationError; end
54
+ class TestEnvironmentRequiredError < ValidationError; end
55
+ class ProductionEnvironmentRequiredError < ValidationError; end
29
56
  end
@@ -1,3 +1,3 @@
1
1
  module StoreKit
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -16,6 +16,5 @@ Gem::Specification.new do |s|
16
16
  s.require_paths = %w(lib)
17
17
  s.license = 'MIT'
18
18
 
19
- s.add_development_dependency 'rake'
20
19
  s.add_development_dependency 'minitest'
21
20
  end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ module StoreKit
4
+ class ErrorTest < Test
5
+ def test_error_subclases
6
+ {
7
+ 21000 => InvalidJsonError,
8
+ 21002 => InvalidReceiptFormatError,
9
+ 21003 => ReceiptAuthenticationError,
10
+ 21004 => InvalidSharedSecretError,
11
+ 21005 => ReceiptServerUnavailableError,
12
+ 21006 => SubscriptionExpiredError,
13
+ 21007 => TestEnvironmentRequiredError,
14
+ 21008 => ProductionEnvironmentRequiredError,
15
+ }.each do |status_code, error_class|
16
+ err = ValidationError.new status_code
17
+ assert_instance_of error_class, err
18
+ assert_equal status_code, err.status_code
19
+ end
20
+ end
21
+ end
22
+ end
@@ -140,6 +140,5 @@ module StoreKit
140
140
  }
141
141
  }
142
142
  end
143
-
144
143
  end
145
144
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: storekit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Douglas Teoh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-13 00:00:00.000000000 Z
11
+ date: 2017-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rake
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: minitest
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -45,6 +31,7 @@ extensions: []
45
31
  extra_rdoc_files: []
46
32
  files:
47
33
  - ".gitignore"
34
+ - ".travis.yml"
48
35
  - Gemfile
49
36
  - LICENSE
50
37
  - README.md
@@ -56,6 +43,7 @@ files:
56
43
  - lib/storekit/receipt.rb
57
44
  - lib/storekit/version.rb
58
45
  - storekit.gemspec
46
+ - test/storekit/error_test.rb
59
47
  - test/storekit/receipt_test.rb
60
48
  - test/test_helper.rb
61
49
  homepage: http://github.com/sujrd/storekit_ruby
@@ -83,5 +71,6 @@ signing_key:
83
71
  specification_version: 4
84
72
  summary: Apple App Store IAP receipt validation
85
73
  test_files:
74
+ - test/storekit/error_test.rb
86
75
  - test/storekit/receipt_test.rb
87
76
  - test/test_helper.rb