candy_check 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build.yml +1 -0
  3. data/.rubocop.yml +10 -0
  4. data/.ruby-version +1 -1
  5. data/Gemfile +1 -1
  6. data/Guardfile +5 -3
  7. data/Rakefile +5 -5
  8. data/candy_check.gemspec +10 -10
  9. data/lib/candy_check/app_store/client.rb +7 -7
  10. data/lib/candy_check/app_store/config.rb +7 -9
  11. data/lib/candy_check/app_store/receipt.rb +16 -16
  12. data/lib/candy_check/app_store/receipt_collection.rb +2 -2
  13. data/lib/candy_check/app_store/subscription_verification.rb +5 -5
  14. data/lib/candy_check/app_store/verification.rb +3 -3
  15. data/lib/candy_check/app_store/verification_failure.rb +25 -21
  16. data/lib/candy_check/app_store/verifier.rb +4 -5
  17. data/lib/candy_check/app_store.rb +8 -8
  18. data/lib/candy_check/cli/app.rb +1 -1
  19. data/lib/candy_check/cli/commands/app_store.rb +1 -1
  20. data/lib/candy_check/cli/commands.rb +4 -4
  21. data/lib/candy_check/cli/out.rb +1 -3
  22. data/lib/candy_check/cli.rb +3 -3
  23. data/lib/candy_check/play_store/product_acknowledgements/acknowledgement.rb +2 -1
  24. data/lib/candy_check/play_store/product_purchases/product_purchase.rb +3 -3
  25. data/lib/candy_check/play_store/product_purchases/product_verification.rb +1 -1
  26. data/lib/candy_check/play_store/subscription_purchases/subscription_purchase.rb +2 -1
  27. data/lib/candy_check/play_store/subscription_purchases/subscription_verification.rb +1 -0
  28. data/lib/candy_check/play_store/verification_failure.rb +2 -2
  29. data/lib/candy_check/utils/attribute_reader.rb +3 -2
  30. data/lib/candy_check/utils/config.rb +2 -0
  31. data/lib/candy_check/utils.rb +2 -2
  32. data/lib/candy_check/version.rb +1 -1
  33. data/lib/candy_check.rb +4 -4
  34. data/spec/app_store/client_spec.rb +18 -18
  35. data/spec/app_store/config_spec.rb +9 -9
  36. data/spec/app_store/receipt_collection_spec.rb +38 -40
  37. data/spec/app_store/receipt_spec.rb +47 -47
  38. data/spec/app_store/subscription_verification_spec.rb +35 -32
  39. data/spec/app_store/verifcation_failure_spec.rb +7 -7
  40. data/spec/app_store/verification_spec.rb +23 -11
  41. data/spec/app_store/verifier_spec.rb +40 -48
  42. data/spec/cli/app_spec.rb +11 -13
  43. data/spec/cli/commands/app_store_spec.rb +22 -23
  44. data/spec/cli/commands/play_store_spec.rb +3 -1
  45. data/spec/cli/commands/version_spec.rb +2 -2
  46. data/spec/cli/out_spec.rb +9 -9
  47. data/spec/play_store/acknowledger_spec.rb +4 -0
  48. data/spec/play_store/product_acknowledgements/acknowledgement_spec.rb +4 -0
  49. data/spec/play_store/product_acknowledgements/response_spec.rb +16 -15
  50. data/spec/play_store/product_purchases/product_purchase_spec.rb +6 -27
  51. data/spec/play_store/subscription_purchases/subscription_purchase_spec.rb +22 -46
  52. data/spec/play_store/verification_failure_spec.rb +6 -4
  53. data/spec/play_store/verifier_spec.rb +4 -2
  54. data/spec/spec_helper.rb +5 -7
  55. 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
- FakeSubscriptionPurchase.new(
8
+ OpenStruct.new(
9
9
  kind: "androidpublisher#subscriptionPurchase",
10
- start_time_millis: 1459540113244,
11
- expiry_time_millis: 1462132088610,
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
- FakeSubscriptionPurchase.new(
71
+ OpenStruct.new(
71
72
  kind: "androidpublisher#subscriptionPurchase",
72
- start_time_millis: 1459540113244,
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
- FakeSubscriptionPurchase.new(
93
+ OpenStruct.new(
93
94
  kind: "androidpublisher#subscriptionPurchase",
94
- start_time_millis: 1459540113244,
95
- expiry_time_millis: 1462132088610,
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
- FakeSubscriptionPurchase.new(
116
+ OpenStruct.new(
116
117
  kind: "androidpublisher#subscriptionPurchase",
117
- start_time_millis: 1459540113244,
118
- expiry_time_millis: 1462132088610,
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
- FakeSubscriptionPurchase.new(
141
+ OpenStruct.new(
141
142
  kind: "androidpublisher#subscriptionPurchase",
142
- start_time_millis: 1459540113244,
143
- expiry_time_millis: 1462132088610,
144
- user_cancellation_time_millis: 1461872888000,
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
- FakeSubscriptionPurchase.new(
170
+ OpenStruct.new(
170
171
  kind: "androidpublisher#subscriptionPurchase",
171
- start_time_millis: 1459540113244,
172
- expiry_time_millis: 1462132088610,
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
- FakeSubscriptionPurchase.new(
192
+ OpenStruct.new(
192
193
  kind: "androidpublisher#subscriptionPurchase",
193
- start_time_millis: 1459540113244,
194
- expiry_time_millis: 1462132088610,
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
- FakeError.new("401", "The current user has insufficient permissions")
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
- FakeError.new(nil, nil)
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, token: token)
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, token: token)
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
- class MiniTest::Spec
42
- class << self
43
- alias :context :describe
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.5.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-23 00:00:00.000000000 Z
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.25.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.25.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.2.0
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.2.0
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: bundler
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.7'
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.7'
83
+ version: '0'
98
84
  - !ruby/object:Gem::Dependency
99
- name: minitest
85
+ name: bundler
100
86
  requirement: !ruby/object:Gem::Requirement
101
87
  requirements:
102
88
  - - "~>"
103
89
  - !ruby/object:Gem::Version
104
- version: '5.10'
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: '5.10'
97
+ version: '2.0'
112
98
  - !ruby/object:Gem::Dependency
113
- name: minitest-around
99
+ name: guard
114
100
  requirement: !ruby/object:Gem::Requirement
115
101
  requirements:
116
- - - "~>"
102
+ - - ">="
117
103
  - !ruby/object:Gem::Version
118
- version: '0.4'
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.4'
111
+ version: '0'
126
112
  - !ruby/object:Gem::Dependency
127
- name: minitest-focus
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: rake
127
+ name: inch
142
128
  requirement: !ruby/object:Gem::Requirement
143
129
  requirements:
144
130
  - - "~>"
145
131
  - !ruby/object:Gem::Version
146
- version: '12.0'
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: '12.0'
139
+ version: '0.7'
154
140
  - !ruby/object:Gem::Dependency
155
- name: rubocop
141
+ name: minitest
156
142
  requirement: !ruby/object:Gem::Requirement
157
143
  requirements:
158
144
  - - "~>"
159
145
  - !ruby/object:Gem::Version
160
- version: '0.48'
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: '0.48'
153
+ version: '5.10'
168
154
  - !ruby/object:Gem::Dependency
169
- name: timecop
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.8'
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.8'
167
+ version: '0.4'
182
168
  - !ruby/object:Gem::Dependency
183
- name: webmock
169
+ name: minitest-focus
184
170
  requirement: !ruby/object:Gem::Requirement
185
171
  requirements:
186
- - - "~>"
172
+ - - ">="
187
173
  - !ruby/object:Gem::Version
188
- version: '3.0'
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: '3.0'
181
+ version: '0'
196
182
  - !ruby/object:Gem::Dependency
197
- name: vcr
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: pry
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: awesome_print
211
+ name: rubocop
226
212
  requirement: !ruby/object:Gem::Requirement
227
213
  requirements:
228
- - - ">="
214
+ - - "~>"
229
215
  - !ruby/object:Gem::Version
230
- version: '0'
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: '0'
223
+ version: '1.46'
238
224
  - !ruby/object:Gem::Dependency
239
- name: guard
225
+ name: simplecov
240
226
  requirement: !ruby/object:Gem::Requirement
241
227
  requirements:
242
- - - ">="
228
+ - - "~>"
243
229
  - !ruby/object:Gem::Version
244
- version: '0'
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: '0'
237
+ version: 0.18.0
252
238
  - !ruby/object:Gem::Dependency
253
- name: guard-minitest
239
+ name: simplecov-lcov
254
240
  requirement: !ruby/object:Gem::Requirement
255
241
  requirements:
256
- - - ">="
242
+ - - "~>"
257
243
  - !ruby/object:Gem::Version
258
- version: '0'
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: '0'
251
+ version: 0.8.0
266
252
  - !ruby/object:Gem::Dependency
267
- name: simplecov
253
+ name: timecop
268
254
  requirement: !ruby/object:Gem::Requirement
269
255
  requirements:
270
256
  - - "~>"
271
257
  - !ruby/object:Gem::Version
272
- version: 0.18.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.18.0
265
+ version: '0.9'
280
266
  - !ruby/object:Gem::Dependency
281
- name: simplecov-lcov
267
+ name: vcr
282
268
  requirement: !ruby/object:Gem::Requirement
283
269
  requirements:
284
270
  - - "~>"
285
271
  - !ruby/object:Gem::Version
286
- version: 0.8.0
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: 0.8.0
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.3.26
402
+ rubygems_version: 3.4.6
403
403
  signing_key:
404
404
  specification_version: 4
405
405
  summary: Check and verify in-app receipts