candy_check 0.5.0 → 0.6.0
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 +4 -4
- data/.github/workflows/build.yml +1 -0
- data/.rubocop.yml +10 -0
- data/.ruby-version +1 -1
- data/Gemfile +1 -1
- data/Guardfile +5 -3
- data/Rakefile +5 -5
- data/candy_check.gemspec +10 -10
- data/lib/candy_check/app_store/client.rb +7 -7
- data/lib/candy_check/app_store/config.rb +7 -9
- data/lib/candy_check/app_store/receipt.rb +16 -16
- data/lib/candy_check/app_store/receipt_collection.rb +2 -2
- data/lib/candy_check/app_store/subscription_verification.rb +5 -5
- data/lib/candy_check/app_store/verification.rb +3 -3
- data/lib/candy_check/app_store/verification_failure.rb +25 -21
- data/lib/candy_check/app_store/verifier.rb +4 -5
- data/lib/candy_check/app_store.rb +8 -8
- data/lib/candy_check/cli/app.rb +1 -1
- data/lib/candy_check/cli/commands/app_store.rb +1 -1
- data/lib/candy_check/cli/commands.rb +4 -4
- data/lib/candy_check/cli/out.rb +1 -3
- data/lib/candy_check/cli.rb +3 -3
- data/lib/candy_check/play_store/product_acknowledgements/acknowledgement.rb +2 -1
- data/lib/candy_check/play_store/product_purchases/product_purchase.rb +3 -3
- data/lib/candy_check/play_store/product_purchases/product_verification.rb +1 -1
- data/lib/candy_check/play_store/subscription_purchases/subscription_purchase.rb +2 -1
- data/lib/candy_check/play_store/subscription_purchases/subscription_verification.rb +1 -0
- data/lib/candy_check/play_store/verification_failure.rb +2 -2
- data/lib/candy_check/utils/attribute_reader.rb +3 -2
- data/lib/candy_check/utils/config.rb +2 -0
- data/lib/candy_check/utils.rb +2 -2
- data/lib/candy_check/version.rb +1 -1
- data/lib/candy_check.rb +4 -4
- data/spec/app_store/client_spec.rb +18 -18
- data/spec/app_store/config_spec.rb +9 -9
- data/spec/app_store/receipt_collection_spec.rb +38 -40
- data/spec/app_store/receipt_spec.rb +47 -47
- data/spec/app_store/subscription_verification_spec.rb +35 -32
- data/spec/app_store/verifcation_failure_spec.rb +7 -7
- data/spec/app_store/verification_spec.rb +23 -11
- data/spec/app_store/verifier_spec.rb +40 -48
- data/spec/cli/app_spec.rb +11 -13
- data/spec/cli/commands/app_store_spec.rb +22 -23
- data/spec/cli/commands/play_store_spec.rb +3 -1
- data/spec/cli/commands/version_spec.rb +2 -2
- data/spec/cli/out_spec.rb +9 -9
- data/spec/play_store/acknowledger_spec.rb +4 -0
- data/spec/play_store/product_acknowledgements/acknowledgement_spec.rb +4 -0
- data/spec/play_store/product_acknowledgements/response_spec.rb +16 -15
- data/spec/play_store/product_purchases/product_purchase_spec.rb +6 -27
- data/spec/play_store/subscription_purchases/subscription_purchase_spec.rb +22 -46
- data/spec/play_store/verification_failure_spec.rb +6 -4
- data/spec/play_store/verifier_spec.rb +4 -2
- data/spec/spec_helper.rb +5 -7
- metadata +76 -76
@@ -5,10 +5,10 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
5
5
|
|
6
6
|
describe "expired and canceled subscription" do
|
7
7
|
let(:fake_subscription_purchase) do
|
8
|
-
|
8
|
+
OpenStruct.new(
|
9
9
|
kind: "androidpublisher#subscriptionPurchase",
|
10
|
-
start_time_millis:
|
11
|
-
expiry_time_millis:
|
10
|
+
start_time_millis: 1_459_540_113_244,
|
11
|
+
expiry_time_millis: 1_462_132_088_610,
|
12
12
|
auto_renewing: false,
|
13
13
|
developer_payload: "payload that gets stored and returned",
|
14
14
|
cancel_reason: 0,
|
@@ -66,10 +66,11 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
66
66
|
|
67
67
|
describe "unexpired and renewing subscription" do
|
68
68
|
two_days_from_now = DateTime.now + 2
|
69
|
+
|
69
70
|
let(:fake_subscription_purchase) do
|
70
|
-
|
71
|
+
OpenStruct.new(
|
71
72
|
kind: "androidpublisher#subscriptionPurchase",
|
72
|
-
start_time_millis:
|
73
|
+
start_time_millis: 1_459_540_113_244,
|
73
74
|
expiry_time_millis: (two_days_from_now.to_time.to_i * 1000),
|
74
75
|
auto_renewing: true,
|
75
76
|
developer_payload: "payload that gets stored and returned",
|
@@ -89,10 +90,10 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
89
90
|
|
90
91
|
describe "expired due to payment failure" do
|
91
92
|
let(:fake_subscription_purchase) do
|
92
|
-
|
93
|
+
OpenStruct.new(
|
93
94
|
kind: "androidpublisher#subscriptionPurchase",
|
94
|
-
start_time_millis:
|
95
|
-
expiry_time_millis:
|
95
|
+
start_time_millis: 1_459_540_113_244,
|
96
|
+
expiry_time_millis: 1_462_132_088_610,
|
96
97
|
auto_renewing: true,
|
97
98
|
developer_payload: "payload that gets stored and returned",
|
98
99
|
cancel_reason: 1,
|
@@ -112,10 +113,10 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
112
113
|
describe "subscription cancelation by user" do
|
113
114
|
describe "when subscription is not canceled" do
|
114
115
|
let(:fake_subscription_purchase) do
|
115
|
-
|
116
|
+
OpenStruct.new(
|
116
117
|
kind: "androidpublisher#subscriptionPurchase",
|
117
|
-
start_time_millis:
|
118
|
-
expiry_time_millis:
|
118
|
+
start_time_millis: 1_459_540_113_244,
|
119
|
+
expiry_time_millis: 1_462_132_088_610,
|
119
120
|
auto_renewing: true,
|
120
121
|
developer_payload: "payload that gets stored and returned",
|
121
122
|
payment_state: 1,
|
@@ -137,11 +138,11 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
137
138
|
|
138
139
|
describe "when subscription is canceled" do
|
139
140
|
let(:fake_subscription_purchase) do
|
140
|
-
|
141
|
+
OpenStruct.new(
|
141
142
|
kind: "androidpublisher#subscriptionPurchase",
|
142
|
-
start_time_millis:
|
143
|
-
expiry_time_millis:
|
144
|
-
user_cancellation_time_millis:
|
143
|
+
start_time_millis: 1_459_540_113_244,
|
144
|
+
expiry_time_millis: 1_462_132_088_610,
|
145
|
+
user_cancellation_time_millis: 1_461_872_888_000,
|
145
146
|
auto_renewing: true,
|
146
147
|
developer_payload: "payload that gets stored and returned",
|
147
148
|
cancel_reason: 0,
|
@@ -166,10 +167,10 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
166
167
|
|
167
168
|
describe "expired with pending payment" do
|
168
169
|
let(:fake_subscription_purchase) do
|
169
|
-
|
170
|
+
OpenStruct.new(
|
170
171
|
kind: "androidpublisher#subscriptionPurchase",
|
171
|
-
start_time_millis:
|
172
|
-
expiry_time_millis:
|
172
|
+
start_time_millis: 1_459_540_113_244,
|
173
|
+
expiry_time_millis: 1_462_132_088_610,
|
173
174
|
auto_renewing: true,
|
174
175
|
developer_payload: "payload that gets stored and returned",
|
175
176
|
cancel_reason: 0,
|
@@ -188,10 +189,10 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
188
189
|
|
189
190
|
describe "trial" do
|
190
191
|
let(:fake_subscription_purchase) do
|
191
|
-
|
192
|
+
OpenStruct.new(
|
192
193
|
kind: "androidpublisher#subscriptionPurchase",
|
193
|
-
start_time_millis:
|
194
|
-
expiry_time_millis:
|
194
|
+
start_time_millis: 1_459_540_113_244,
|
195
|
+
expiry_time_millis: 1_462_132_088_610,
|
195
196
|
auto_renewing: false,
|
196
197
|
developer_payload: "payload that gets stored and returned",
|
197
198
|
cancel_reason: 0,
|
@@ -209,29 +210,4 @@ describe CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase do
|
|
209
210
|
_(subject.price_currency_code).must_equal "SOMECODE"
|
210
211
|
end
|
211
212
|
end
|
212
|
-
|
213
|
-
private
|
214
|
-
|
215
|
-
class FakeSubscriptionPurchase
|
216
|
-
FIELDS = [
|
217
|
-
:kind,
|
218
|
-
:start_time_millis,
|
219
|
-
:expiry_time_millis,
|
220
|
-
:user_cancellation_time_millis,
|
221
|
-
:auto_renewing,
|
222
|
-
:developer_payload,
|
223
|
-
:cancel_reason,
|
224
|
-
:payment_state,
|
225
|
-
:price_amount_micros,
|
226
|
-
:price_currency_code,
|
227
|
-
].freeze
|
228
|
-
|
229
|
-
attr_accessor(*FIELDS)
|
230
|
-
|
231
|
-
def initialize(hash)
|
232
|
-
FIELDS.each do |key|
|
233
|
-
self.public_send("#{key}=", hash[key])
|
234
|
-
end
|
235
|
-
end
|
236
|
-
end
|
237
213
|
end
|
@@ -3,9 +3,13 @@ require "spec_helper"
|
|
3
3
|
describe CandyCheck::PlayStore::VerificationFailure do
|
4
4
|
subject { CandyCheck::PlayStore::VerificationFailure.new(fake_error) }
|
5
5
|
|
6
|
+
let(:fake_error_class) do
|
7
|
+
Struct.new(:status_code, :message)
|
8
|
+
end
|
9
|
+
|
6
10
|
describe "denied" do
|
7
11
|
let(:fake_error) do
|
8
|
-
|
12
|
+
fake_error_class.new("401", "The current user has insufficient permissions")
|
9
13
|
end
|
10
14
|
|
11
15
|
it "returns the code" do
|
@@ -19,7 +23,7 @@ describe CandyCheck::PlayStore::VerificationFailure do
|
|
19
23
|
|
20
24
|
describe "empty" do
|
21
25
|
let(:fake_error) do
|
22
|
-
|
26
|
+
fake_error_class.new(nil, nil)
|
23
27
|
end
|
24
28
|
|
25
29
|
it "returns an unknown code" do
|
@@ -30,6 +34,4 @@ describe CandyCheck::PlayStore::VerificationFailure do
|
|
30
34
|
_(subject.message).must_equal "Unknown error"
|
31
35
|
end
|
32
36
|
end
|
33
|
-
|
34
|
-
FakeError = Struct.new(:status_code, :message)
|
35
37
|
end
|
@@ -32,14 +32,16 @@ describe CandyCheck::PlayStore::Verifier do
|
|
32
32
|
describe "subscription purchases" do
|
33
33
|
it "verifies a subscription purchase" do
|
34
34
|
VCR.use_cassette("play_store/subscription_purchases/valid_but_expired") do
|
35
|
-
result = subject.verify_subscription_purchase(package_name: package_name, subscription_id: subscription_id,
|
35
|
+
result = subject.verify_subscription_purchase(package_name: package_name, subscription_id: subscription_id,
|
36
|
+
token: token)
|
36
37
|
_(result).must_be_instance_of CandyCheck::PlayStore::SubscriptionPurchases::SubscriptionPurchase
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
40
41
|
it "can return a subscription purchase verification failure" do
|
41
42
|
VCR.use_cassette("play_store/subscription_purchases/permission_denied") do
|
42
|
-
result = subject.verify_subscription_purchase(package_name: package_name, subscription_id: subscription_id,
|
43
|
+
result = subject.verify_subscription_purchase(package_name: package_name, subscription_id: subscription_id,
|
44
|
+
token: token)
|
43
45
|
_(result).must_be_instance_of CandyCheck::PlayStore::VerificationFailure
|
44
46
|
end
|
45
47
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
require "candy_check"
|
3
2
|
require "candy_check/cli"
|
4
3
|
|
@@ -38,14 +37,13 @@ require_relative "support/with_command"
|
|
38
37
|
|
39
38
|
ENV["DEBUG"] && Google::APIClient.logger.level = Logger::DEBUG
|
40
39
|
|
41
|
-
|
42
|
-
class
|
43
|
-
|
40
|
+
module MiniTest
|
41
|
+
class Spec
|
42
|
+
class << self
|
43
|
+
alias context describe
|
44
|
+
end
|
44
45
|
end
|
45
|
-
end
|
46
|
-
|
47
46
|
|
48
|
-
module MiniTest
|
49
47
|
module Assertions
|
50
48
|
# The first parameter must be ```true```, not coercible to true.
|
51
49
|
def assert_true(obj, msg = nil)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: candy_check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonas Thiel
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-02-
|
12
|
+
date: 2023-02-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: google-apis-androidpublisher_v3
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0.
|
20
|
+
version: 0.34.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0.
|
27
|
+
version: 0.34.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: googleauth
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 1.
|
34
|
+
version: 1.3.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 1.
|
41
|
+
version: 1.3.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: multi_json
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,63 +68,49 @@ dependencies:
|
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '2.0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - "~>"
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '2.0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '2.0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: inch
|
71
|
+
name: awesome_print
|
86
72
|
requirement: !ruby/object:Gem::Requirement
|
87
73
|
requirements:
|
88
|
-
- - "
|
74
|
+
- - ">="
|
89
75
|
- !ruby/object:Gem::Version
|
90
|
-
version: '0
|
76
|
+
version: '0'
|
91
77
|
type: :development
|
92
78
|
prerelease: false
|
93
79
|
version_requirements: !ruby/object:Gem::Requirement
|
94
80
|
requirements:
|
95
|
-
- - "
|
81
|
+
- - ">="
|
96
82
|
- !ruby/object:Gem::Version
|
97
|
-
version: '0
|
83
|
+
version: '0'
|
98
84
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
85
|
+
name: bundler
|
100
86
|
requirement: !ruby/object:Gem::Requirement
|
101
87
|
requirements:
|
102
88
|
- - "~>"
|
103
89
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
90
|
+
version: '2.0'
|
105
91
|
type: :development
|
106
92
|
prerelease: false
|
107
93
|
version_requirements: !ruby/object:Gem::Requirement
|
108
94
|
requirements:
|
109
95
|
- - "~>"
|
110
96
|
- !ruby/object:Gem::Version
|
111
|
-
version: '
|
97
|
+
version: '2.0'
|
112
98
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
99
|
+
name: guard
|
114
100
|
requirement: !ruby/object:Gem::Requirement
|
115
101
|
requirements:
|
116
|
-
- - "
|
102
|
+
- - ">="
|
117
103
|
- !ruby/object:Gem::Version
|
118
|
-
version: '0
|
104
|
+
version: '0'
|
119
105
|
type: :development
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
108
|
requirements:
|
123
|
-
- - "
|
109
|
+
- - ">="
|
124
110
|
- !ruby/object:Gem::Version
|
125
|
-
version: '0
|
111
|
+
version: '0'
|
126
112
|
- !ruby/object:Gem::Dependency
|
127
|
-
name: minitest
|
113
|
+
name: guard-minitest
|
128
114
|
requirement: !ruby/object:Gem::Requirement
|
129
115
|
requirements:
|
130
116
|
- - ">="
|
@@ -138,63 +124,63 @@ dependencies:
|
|
138
124
|
- !ruby/object:Gem::Version
|
139
125
|
version: '0'
|
140
126
|
- !ruby/object:Gem::Dependency
|
141
|
-
name:
|
127
|
+
name: inch
|
142
128
|
requirement: !ruby/object:Gem::Requirement
|
143
129
|
requirements:
|
144
130
|
- - "~>"
|
145
131
|
- !ruby/object:Gem::Version
|
146
|
-
version: '
|
132
|
+
version: '0.7'
|
147
133
|
type: :development
|
148
134
|
prerelease: false
|
149
135
|
version_requirements: !ruby/object:Gem::Requirement
|
150
136
|
requirements:
|
151
137
|
- - "~>"
|
152
138
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
139
|
+
version: '0.7'
|
154
140
|
- !ruby/object:Gem::Dependency
|
155
|
-
name:
|
141
|
+
name: minitest
|
156
142
|
requirement: !ruby/object:Gem::Requirement
|
157
143
|
requirements:
|
158
144
|
- - "~>"
|
159
145
|
- !ruby/object:Gem::Version
|
160
|
-
version: '
|
146
|
+
version: '5.10'
|
161
147
|
type: :development
|
162
148
|
prerelease: false
|
163
149
|
version_requirements: !ruby/object:Gem::Requirement
|
164
150
|
requirements:
|
165
151
|
- - "~>"
|
166
152
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
153
|
+
version: '5.10'
|
168
154
|
- !ruby/object:Gem::Dependency
|
169
|
-
name:
|
155
|
+
name: minitest-around
|
170
156
|
requirement: !ruby/object:Gem::Requirement
|
171
157
|
requirements:
|
172
158
|
- - "~>"
|
173
159
|
- !ruby/object:Gem::Version
|
174
|
-
version: '0.
|
160
|
+
version: '0.4'
|
175
161
|
type: :development
|
176
162
|
prerelease: false
|
177
163
|
version_requirements: !ruby/object:Gem::Requirement
|
178
164
|
requirements:
|
179
165
|
- - "~>"
|
180
166
|
- !ruby/object:Gem::Version
|
181
|
-
version: '0.
|
167
|
+
version: '0.4'
|
182
168
|
- !ruby/object:Gem::Dependency
|
183
|
-
name:
|
169
|
+
name: minitest-focus
|
184
170
|
requirement: !ruby/object:Gem::Requirement
|
185
171
|
requirements:
|
186
|
-
- - "
|
172
|
+
- - ">="
|
187
173
|
- !ruby/object:Gem::Version
|
188
|
-
version: '
|
174
|
+
version: '0'
|
189
175
|
type: :development
|
190
176
|
prerelease: false
|
191
177
|
version_requirements: !ruby/object:Gem::Requirement
|
192
178
|
requirements:
|
193
|
-
- - "
|
179
|
+
- - ">="
|
194
180
|
- !ruby/object:Gem::Version
|
195
|
-
version: '
|
181
|
+
version: '0'
|
196
182
|
- !ruby/object:Gem::Dependency
|
197
|
-
name:
|
183
|
+
name: pry
|
198
184
|
requirement: !ruby/object:Gem::Requirement
|
199
185
|
requirements:
|
200
186
|
- - ">="
|
@@ -208,89 +194,103 @@ dependencies:
|
|
208
194
|
- !ruby/object:Gem::Version
|
209
195
|
version: '0'
|
210
196
|
- !ruby/object:Gem::Dependency
|
211
|
-
name:
|
197
|
+
name: rake
|
212
198
|
requirement: !ruby/object:Gem::Requirement
|
213
199
|
requirements:
|
214
|
-
- - "
|
200
|
+
- - "~>"
|
215
201
|
- !ruby/object:Gem::Version
|
216
|
-
version: '0'
|
202
|
+
version: '13.0'
|
217
203
|
type: :development
|
218
204
|
prerelease: false
|
219
205
|
version_requirements: !ruby/object:Gem::Requirement
|
220
206
|
requirements:
|
221
|
-
- - "
|
207
|
+
- - "~>"
|
222
208
|
- !ruby/object:Gem::Version
|
223
|
-
version: '0'
|
209
|
+
version: '13.0'
|
224
210
|
- !ruby/object:Gem::Dependency
|
225
|
-
name:
|
211
|
+
name: rubocop
|
226
212
|
requirement: !ruby/object:Gem::Requirement
|
227
213
|
requirements:
|
228
|
-
- - "
|
214
|
+
- - "~>"
|
229
215
|
- !ruby/object:Gem::Version
|
230
|
-
version: '
|
216
|
+
version: '1.46'
|
231
217
|
type: :development
|
232
218
|
prerelease: false
|
233
219
|
version_requirements: !ruby/object:Gem::Requirement
|
234
220
|
requirements:
|
235
|
-
- - "
|
221
|
+
- - "~>"
|
236
222
|
- !ruby/object:Gem::Version
|
237
|
-
version: '
|
223
|
+
version: '1.46'
|
238
224
|
- !ruby/object:Gem::Dependency
|
239
|
-
name:
|
225
|
+
name: simplecov
|
240
226
|
requirement: !ruby/object:Gem::Requirement
|
241
227
|
requirements:
|
242
|
-
- - "
|
228
|
+
- - "~>"
|
243
229
|
- !ruby/object:Gem::Version
|
244
|
-
version:
|
230
|
+
version: 0.18.0
|
245
231
|
type: :development
|
246
232
|
prerelease: false
|
247
233
|
version_requirements: !ruby/object:Gem::Requirement
|
248
234
|
requirements:
|
249
|
-
- - "
|
235
|
+
- - "~>"
|
250
236
|
- !ruby/object:Gem::Version
|
251
|
-
version:
|
237
|
+
version: 0.18.0
|
252
238
|
- !ruby/object:Gem::Dependency
|
253
|
-
name:
|
239
|
+
name: simplecov-lcov
|
254
240
|
requirement: !ruby/object:Gem::Requirement
|
255
241
|
requirements:
|
256
|
-
- - "
|
242
|
+
- - "~>"
|
257
243
|
- !ruby/object:Gem::Version
|
258
|
-
version:
|
244
|
+
version: 0.8.0
|
259
245
|
type: :development
|
260
246
|
prerelease: false
|
261
247
|
version_requirements: !ruby/object:Gem::Requirement
|
262
248
|
requirements:
|
263
|
-
- - "
|
249
|
+
- - "~>"
|
264
250
|
- !ruby/object:Gem::Version
|
265
|
-
version:
|
251
|
+
version: 0.8.0
|
266
252
|
- !ruby/object:Gem::Dependency
|
267
|
-
name:
|
253
|
+
name: timecop
|
268
254
|
requirement: !ruby/object:Gem::Requirement
|
269
255
|
requirements:
|
270
256
|
- - "~>"
|
271
257
|
- !ruby/object:Gem::Version
|
272
|
-
version: 0.
|
258
|
+
version: '0.9'
|
273
259
|
type: :development
|
274
260
|
prerelease: false
|
275
261
|
version_requirements: !ruby/object:Gem::Requirement
|
276
262
|
requirements:
|
277
263
|
- - "~>"
|
278
264
|
- !ruby/object:Gem::Version
|
279
|
-
version: 0.
|
265
|
+
version: '0.9'
|
280
266
|
- !ruby/object:Gem::Dependency
|
281
|
-
name:
|
267
|
+
name: vcr
|
282
268
|
requirement: !ruby/object:Gem::Requirement
|
283
269
|
requirements:
|
284
270
|
- - "~>"
|
285
271
|
- !ruby/object:Gem::Version
|
286
|
-
version:
|
272
|
+
version: '6.1'
|
287
273
|
type: :development
|
288
274
|
prerelease: false
|
289
275
|
version_requirements: !ruby/object:Gem::Requirement
|
290
276
|
requirements:
|
291
277
|
- - "~>"
|
292
278
|
- !ruby/object:Gem::Version
|
293
|
-
version:
|
279
|
+
version: '6.1'
|
280
|
+
- !ruby/object:Gem::Dependency
|
281
|
+
name: webmock
|
282
|
+
requirement: !ruby/object:Gem::Requirement
|
283
|
+
requirements:
|
284
|
+
- - "~>"
|
285
|
+
- !ruby/object:Gem::Version
|
286
|
+
version: '3.0'
|
287
|
+
type: :development
|
288
|
+
prerelease: false
|
289
|
+
version_requirements: !ruby/object:Gem::Requirement
|
290
|
+
requirements:
|
291
|
+
- - "~>"
|
292
|
+
- !ruby/object:Gem::Version
|
293
|
+
version: '3.0'
|
294
294
|
description:
|
295
295
|
email:
|
296
296
|
- jonas@thiel.io
|
@@ -399,7 +399,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
399
399
|
- !ruby/object:Gem::Version
|
400
400
|
version: '0'
|
401
401
|
requirements: []
|
402
|
-
rubygems_version: 3.
|
402
|
+
rubygems_version: 3.4.6
|
403
403
|
signing_key:
|
404
404
|
specification_version: 4
|
405
405
|
summary: Check and verify in-app receipts
|