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.
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