gemstash 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/gemstash +3 -0
- data/lib/gemstash.rb +2 -0
- data/lib/gemstash/api_key_authorization.rb +3 -0
- data/lib/gemstash/authorization.rb +7 -3
- data/lib/gemstash/cache.rb +5 -2
- data/lib/gemstash/cli.rb +2 -0
- data/lib/gemstash/cli/authorize.rb +3 -3
- data/lib/gemstash/cli/base.rb +4 -1
- data/lib/gemstash/cli/setup.rb +8 -1
- data/lib/gemstash/cli/start.rb +4 -1
- data/lib/gemstash/cli/status.rb +2 -0
- data/lib/gemstash/cli/stop.rb +2 -0
- data/lib/gemstash/config.ru +3 -3
- data/lib/gemstash/configuration.rb +7 -1
- data/lib/gemstash/db.rb +3 -0
- data/lib/gemstash/db/authorization.rb +2 -0
- data/lib/gemstash/db/cached_rubygem.rb +3 -0
- data/lib/gemstash/db/dependency.rb +2 -0
- data/lib/gemstash/db/rubygem.rb +3 -0
- data/lib/gemstash/db/upstream.rb +3 -0
- data/lib/gemstash/db/version.rb +3 -0
- data/lib/gemstash/dependencies.rb +4 -0
- data/lib/gemstash/env.rb +22 -4
- data/lib/gemstash/gem_fetcher.rb +2 -0
- data/lib/gemstash/gem_pusher.rb +5 -3
- data/lib/gemstash/gem_source.rb +2 -0
- data/lib/gemstash/gem_source/dependency_caching.rb +4 -4
- data/lib/gemstash/gem_source/private_source.rb +3 -0
- data/lib/gemstash/gem_source/rack_middleware.rb +3 -0
- data/lib/gemstash/gem_source/upstream_source.rb +9 -3
- data/lib/gemstash/gem_yanker.rb +4 -0
- data/lib/gemstash/health.rb +2 -0
- data/lib/gemstash/http_client.rb +4 -1
- data/lib/gemstash/logging.rb +2 -0
- data/lib/gemstash/man/gemstash-authorize.1 +51 -0
- data/lib/gemstash/man/gemstash-authorize.1.txt +33 -53
- data/lib/gemstash/man/gemstash-configuration.5 +229 -0
- data/lib/gemstash/man/gemstash-configuration.5.txt +150 -6
- data/lib/gemstash/man/gemstash-customize.7 +301 -0
- data/lib/gemstash/man/gemstash-customize.7.txt +183 -62
- data/lib/gemstash/man/gemstash-debugging.7 +34 -0
- data/lib/gemstash/man/gemstash-debugging.7.txt +17 -54
- data/lib/gemstash/man/gemstash-deploy.7 +72 -0
- data/lib/gemstash/man/gemstash-deploy.7.txt +44 -51
- data/lib/gemstash/man/gemstash-mirror.7 +40 -0
- data/lib/gemstash/man/gemstash-mirror.7.txt +20 -53
- data/lib/gemstash/man/gemstash-multiple-sources.7 +89 -0
- data/lib/gemstash/man/gemstash-multiple-sources.7.txt +53 -48
- data/lib/gemstash/man/gemstash-private-gems.7 +227 -0
- data/lib/gemstash/man/gemstash-private-gems.7.txt +108 -18
- data/lib/gemstash/man/gemstash-readme.7 +233 -0
- data/lib/gemstash/man/gemstash-readme.7.txt +126 -10
- data/lib/gemstash/man/gemstash-setup.1 +43 -0
- data/lib/gemstash/man/gemstash-setup.1.txt +28 -54
- data/lib/gemstash/man/gemstash-start.1 +26 -0
- data/lib/gemstash/man/gemstash-start.1.txt +16 -56
- data/lib/gemstash/man/gemstash-status.1 +20 -0
- data/lib/gemstash/man/gemstash-status.1.txt +13 -57
- data/lib/gemstash/man/gemstash-stop.1 +20 -0
- data/lib/gemstash/man/gemstash-stop.1.txt +13 -57
- data/lib/gemstash/man/gemstash-version.1 +22 -0
- data/lib/gemstash/man/gemstash-version.1.txt +12 -57
- data/lib/gemstash/migrations/01_gem_dependencies.rb +2 -0
- data/lib/gemstash/migrations/02_authorizations.rb +2 -0
- data/lib/gemstash/migrations/03_cached_gems.rb +2 -0
- data/lib/gemstash/migrations/04_health_tests.rb +2 -0
- data/lib/gemstash/puma.rb +2 -0
- data/lib/gemstash/rack_env_rewriter.rb +11 -2
- data/lib/gemstash/specs_builder.rb +5 -1
- data/lib/gemstash/storage.rb +12 -3
- data/lib/gemstash/upstream.rb +2 -0
- data/lib/gemstash/version.rb +3 -1
- data/lib/gemstash/web.rb +2 -0
- metadata +69 -22
@@ -0,0 +1,22 @@
|
|
1
|
+
.\" Automatically generated by Pandoc 2.5
|
2
|
+
.\"
|
3
|
+
.TH "gemstash\-version" "1" "December 14, 2015" "" ""
|
4
|
+
.hy
|
5
|
+
.SH NAME
|
6
|
+
.PP
|
7
|
+
gemstash\-version \- Show what version of Gemstash you are using
|
8
|
+
.SH SYNOPSIS
|
9
|
+
.PP
|
10
|
+
\f[C]gemstash version\f[R]
|
11
|
+
.SH DESCRIPTION
|
12
|
+
.PP
|
13
|
+
Show what version of Gemstash you are using.
|
14
|
+
.SS USAGE
|
15
|
+
.IP
|
16
|
+
.nf
|
17
|
+
\f[C]
|
18
|
+
gemstash version
|
19
|
+
gemstash \-\-version
|
20
|
+
gemstash \-v
|
21
|
+
\f[R]
|
22
|
+
.fi
|
@@ -1,66 +1,21 @@
|
|
1
|
+
gemstash-version(1) gemstash-version(1)
|
1
2
|
|
2
3
|
|
3
4
|
|
5
|
+
1mNAME0m
|
6
|
+
gemstash-version - Show what version of Gemstash you are using
|
4
7
|
|
8
|
+
1mSYNOPSIS0m
|
9
|
+
gemstash version
|
5
10
|
|
11
|
+
1mDESCRIPTION0m
|
12
|
+
Show what version of Gemstash you are using.
|
6
13
|
|
14
|
+
1mUSAGE0m
|
15
|
+
gemstash version
|
16
|
+
gemstash --version
|
17
|
+
gemstash -v
|
7
18
|
|
8
19
|
|
9
20
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
21
|
+
December 14, 2015 gemstash-version(1)
|
data/lib/gemstash/puma.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "gemstash"
|
2
4
|
require "forwardable"
|
3
5
|
|
@@ -33,8 +35,15 @@ module Gemstash
|
|
33
35
|
def rewrite
|
34
36
|
check_match
|
35
37
|
log_start = "Rewriting '#{@rack_env["REQUEST_URI"]}'"
|
36
|
-
|
37
|
-
@rack_env["
|
38
|
+
|
39
|
+
new_request_uri = @rack_env["REQUEST_URI"].dup
|
40
|
+
new_request_uri[@request_uri_match.begin(0)...@request_uri_match.end(0)] = ""
|
41
|
+
|
42
|
+
new_path_info = @rack_env["PATH_INFO"].dup
|
43
|
+
new_path_info[@path_info_match.begin(0)...@path_info_match.end(0)] = ""
|
44
|
+
|
45
|
+
@rack_env["REQUEST_URI"] = new_request_uri
|
46
|
+
@rack_env["PATH_INFO"] = new_path_info
|
38
47
|
log.info "#{log_start} to '#{@rack_env["REQUEST_URI"]}'"
|
39
48
|
end
|
40
49
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "gemstash"
|
2
4
|
require "stringio"
|
3
5
|
require "zlib"
|
@@ -33,6 +35,7 @@ module Gemstash
|
|
33
35
|
check_auth if gemstash_env.config[:protected_fetch]
|
34
36
|
fetch_from_storage
|
35
37
|
return result if result
|
38
|
+
|
36
39
|
fetch_versions
|
37
40
|
marshal
|
38
41
|
gzip
|
@@ -59,8 +62,9 @@ module Gemstash
|
|
59
62
|
def fetch_from_storage
|
60
63
|
specs = fetch_resource
|
61
64
|
return unless specs.exist?(:specs)
|
65
|
+
|
62
66
|
@result = specs.load(:specs).content(:specs)
|
63
|
-
rescue
|
67
|
+
rescue StandardError
|
64
68
|
# On the off-chance of a race condition between specs.exist? and specs.load
|
65
69
|
@result = nil
|
66
70
|
end
|
data/lib/gemstash/storage.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require "gemstash"
|
2
4
|
require "digest"
|
3
5
|
require "fileutils"
|
@@ -74,12 +76,14 @@ module Gemstash
|
|
74
76
|
def check_storage_version
|
75
77
|
version = Gemstash::Storage.metadata[:storage_version]
|
76
78
|
return if version <= Gemstash::Storage::VERSION
|
79
|
+
|
77
80
|
raise Gemstash::Storage::VersionTooNew.new(@folder, version)
|
78
81
|
end
|
79
82
|
|
80
83
|
def path_valid?(path)
|
81
84
|
return false if path.nil?
|
82
85
|
return false unless File.writable?(path)
|
86
|
+
|
83
87
|
true
|
84
88
|
end
|
85
89
|
end
|
@@ -247,17 +251,17 @@ module Gemstash
|
|
247
251
|
|
248
252
|
begin
|
249
253
|
File.delete(content_filename(key))
|
250
|
-
rescue => e
|
254
|
+
rescue StandardError => e
|
251
255
|
log_error "Failed to delete stored content at #{content_filename(key)}", e, level: :warn
|
252
256
|
end
|
253
257
|
|
254
258
|
begin
|
255
259
|
File.delete(properties_filename) unless content?
|
256
|
-
rescue => e
|
260
|
+
rescue StandardError => e
|
257
261
|
log_error "Failed to delete stored properties at #{properties_filename}", e, level: :warn
|
258
262
|
end
|
259
263
|
|
260
|
-
|
264
|
+
self
|
261
265
|
ensure
|
262
266
|
reset
|
263
267
|
end
|
@@ -266,6 +270,7 @@ module Gemstash
|
|
266
270
|
|
267
271
|
def load(key)
|
268
272
|
raise "Resource #{@name} has no #{key.inspect} content to load" unless exist?(key)
|
273
|
+
|
269
274
|
load_properties # Ensures storage version is checked
|
270
275
|
@content ||= {}
|
271
276
|
@content[key] = read_file(content_filename(key))
|
@@ -274,6 +279,7 @@ module Gemstash
|
|
274
279
|
def load_properties(force = false)
|
275
280
|
return if @properties && !force
|
276
281
|
return unless File.exist?(properties_filename)
|
282
|
+
|
277
283
|
@properties = YAML.load_file(properties_filename) || {}
|
278
284
|
check_resource_version
|
279
285
|
end
|
@@ -281,6 +287,7 @@ module Gemstash
|
|
281
287
|
def check_resource_version
|
282
288
|
version = @properties[:gemstash_resource_version]
|
283
289
|
return if version <= Gemstash::Resource::VERSION
|
290
|
+
|
284
291
|
reset
|
285
292
|
raise Gemstash::Resource::VersionTooNew.new(name, folder, version)
|
286
293
|
end
|
@@ -292,6 +299,7 @@ module Gemstash
|
|
292
299
|
|
293
300
|
def content?
|
294
301
|
return false unless Dir.exist?(@folder)
|
302
|
+
|
295
303
|
entries = Dir.entries(@folder).reject {|file| file =~ /\A\.\.?\z/ || file == "properties.yaml" }
|
296
304
|
!entries.empty?
|
297
305
|
end
|
@@ -330,6 +338,7 @@ module Gemstash
|
|
330
338
|
def content_filename(key)
|
331
339
|
name = sanitize(key.to_s)
|
332
340
|
raise "Invalid content key #{key.inspect}" if name.empty?
|
341
|
+
|
333
342
|
File.join(@folder, name)
|
334
343
|
end
|
335
344
|
|
data/lib/gemstash/upstream.rb
CHANGED
data/lib/gemstash/version.rb
CHANGED
data/lib/gemstash/web.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemstash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andre Arko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -92,42 +92,42 @@ dependencies:
|
|
92
92
|
requirements:
|
93
93
|
- - "~>"
|
94
94
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
95
|
+
version: '4.0'
|
96
96
|
type: :runtime
|
97
97
|
prerelease: false
|
98
98
|
version_requirements: !ruby/object:Gem::Requirement
|
99
99
|
requirements:
|
100
100
|
- - "~>"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
102
|
+
version: '4.0'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
104
|
+
name: sequel
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
107
|
- - "~>"
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: '0
|
109
|
+
version: '5.0'
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
112
|
version_requirements: !ruby/object:Gem::Requirement
|
113
113
|
requirements:
|
114
114
|
- - "~>"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: '0
|
116
|
+
version: '5.0'
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
118
|
+
name: server_health_check-rack
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: '
|
123
|
+
version: '0.1'
|
124
124
|
type: :runtime
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
130
|
+
version: '0.1'
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: sinatra
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,20 +176,40 @@ dependencies:
|
|
176
176
|
- - "~>"
|
177
177
|
- !ruby/object:Gem::Version
|
178
178
|
version: '1.3'
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: aruba
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0.14'
|
186
|
+
type: :development
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0.14'
|
179
193
|
- !ruby/object:Gem::Dependency
|
180
194
|
name: bundler
|
181
195
|
requirement: !ruby/object:Gem::Requirement
|
182
196
|
requirements:
|
183
|
-
- - "
|
197
|
+
- - ">="
|
184
198
|
- !ruby/object:Gem::Version
|
185
199
|
version: '1.11'
|
200
|
+
- - "<"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '3.0'
|
186
203
|
type: :development
|
187
204
|
prerelease: false
|
188
205
|
version_requirements: !ruby/object:Gem::Requirement
|
189
206
|
requirements:
|
190
|
-
- - "
|
207
|
+
- - ">="
|
191
208
|
- !ruby/object:Gem::Version
|
192
209
|
version: '1.11'
|
210
|
+
- - "<"
|
211
|
+
- !ruby/object:Gem::Version
|
212
|
+
version: '3.0'
|
193
213
|
- !ruby/object:Gem::Dependency
|
194
214
|
name: citrus
|
195
215
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,28 +258,28 @@ dependencies:
|
|
238
258
|
requirements:
|
239
259
|
- - "~>"
|
240
260
|
- !ruby/object:Gem::Version
|
241
|
-
version: '
|
261
|
+
version: '1.1'
|
242
262
|
type: :development
|
243
263
|
prerelease: false
|
244
264
|
version_requirements: !ruby/object:Gem::Requirement
|
245
265
|
requirements:
|
246
266
|
- - "~>"
|
247
267
|
- !ruby/object:Gem::Version
|
248
|
-
version: '
|
268
|
+
version: '1.1'
|
249
269
|
- !ruby/object:Gem::Dependency
|
250
270
|
name: rake
|
251
271
|
requirement: !ruby/object:Gem::Requirement
|
252
272
|
requirements:
|
253
273
|
- - "~>"
|
254
274
|
- !ruby/object:Gem::Version
|
255
|
-
version: '
|
275
|
+
version: '12.3'
|
256
276
|
type: :development
|
257
277
|
prerelease: false
|
258
278
|
version_requirements: !ruby/object:Gem::Requirement
|
259
279
|
requirements:
|
260
280
|
- - "~>"
|
261
281
|
- !ruby/object:Gem::Version
|
262
|
-
version: '
|
282
|
+
version: '12.3'
|
263
283
|
- !ruby/object:Gem::Dependency
|
264
284
|
name: rspec
|
265
285
|
requirement: !ruby/object:Gem::Requirement
|
@@ -280,14 +300,28 @@ dependencies:
|
|
280
300
|
requirements:
|
281
301
|
- - '='
|
282
302
|
- !ruby/object:Gem::Version
|
283
|
-
version:
|
303
|
+
version: 0.67.2
|
284
304
|
type: :development
|
285
305
|
prerelease: false
|
286
306
|
version_requirements: !ruby/object:Gem::Requirement
|
287
307
|
requirements:
|
288
308
|
- - '='
|
289
309
|
- !ruby/object:Gem::Version
|
290
|
-
version:
|
310
|
+
version: 0.67.2
|
311
|
+
- !ruby/object:Gem::Dependency
|
312
|
+
name: rubocop-performance
|
313
|
+
requirement: !ruby/object:Gem::Requirement
|
314
|
+
requirements:
|
315
|
+
- - "~>"
|
316
|
+
- !ruby/object:Gem::Version
|
317
|
+
version: 1.1.0
|
318
|
+
type: :development
|
319
|
+
prerelease: false
|
320
|
+
version_requirements: !ruby/object:Gem::Requirement
|
321
|
+
requirements:
|
322
|
+
- - "~>"
|
323
|
+
- !ruby/object:Gem::Version
|
324
|
+
version: 1.1.0
|
291
325
|
description: Gemstash acts as a local RubyGems server, caching copies of gems from
|
292
326
|
RubyGems.org automatically, and eventually letting you push your own private gems
|
293
327
|
as well.
|
@@ -335,19 +369,33 @@ files:
|
|
335
369
|
- lib/gemstash/health.rb
|
336
370
|
- lib/gemstash/http_client.rb
|
337
371
|
- lib/gemstash/logging.rb
|
372
|
+
- lib/gemstash/man/gemstash-authorize.1
|
338
373
|
- lib/gemstash/man/gemstash-authorize.1.txt
|
374
|
+
- lib/gemstash/man/gemstash-configuration.5
|
339
375
|
- lib/gemstash/man/gemstash-configuration.5.txt
|
376
|
+
- lib/gemstash/man/gemstash-customize.7
|
340
377
|
- lib/gemstash/man/gemstash-customize.7.txt
|
378
|
+
- lib/gemstash/man/gemstash-debugging.7
|
341
379
|
- lib/gemstash/man/gemstash-debugging.7.txt
|
380
|
+
- lib/gemstash/man/gemstash-deploy.7
|
342
381
|
- lib/gemstash/man/gemstash-deploy.7.txt
|
382
|
+
- lib/gemstash/man/gemstash-mirror.7
|
343
383
|
- lib/gemstash/man/gemstash-mirror.7.txt
|
384
|
+
- lib/gemstash/man/gemstash-multiple-sources.7
|
344
385
|
- lib/gemstash/man/gemstash-multiple-sources.7.txt
|
386
|
+
- lib/gemstash/man/gemstash-private-gems.7
|
345
387
|
- lib/gemstash/man/gemstash-private-gems.7.txt
|
388
|
+
- lib/gemstash/man/gemstash-readme.7
|
346
389
|
- lib/gemstash/man/gemstash-readme.7.txt
|
390
|
+
- lib/gemstash/man/gemstash-setup.1
|
347
391
|
- lib/gemstash/man/gemstash-setup.1.txt
|
392
|
+
- lib/gemstash/man/gemstash-start.1
|
348
393
|
- lib/gemstash/man/gemstash-start.1.txt
|
394
|
+
- lib/gemstash/man/gemstash-status.1
|
349
395
|
- lib/gemstash/man/gemstash-status.1.txt
|
396
|
+
- lib/gemstash/man/gemstash-stop.1
|
350
397
|
- lib/gemstash/man/gemstash-stop.1.txt
|
398
|
+
- lib/gemstash/man/gemstash-version.1
|
351
399
|
- lib/gemstash/man/gemstash-version.1.txt
|
352
400
|
- lib/gemstash/migrations/01_gem_dependencies.rb
|
353
401
|
- lib/gemstash/migrations/02_authorizations.rb
|
@@ -360,7 +408,7 @@ files:
|
|
360
408
|
- lib/gemstash/upstream.rb
|
361
409
|
- lib/gemstash/version.rb
|
362
410
|
- lib/gemstash/web.rb
|
363
|
-
homepage: https://github.com/
|
411
|
+
homepage: https://github.com/rubygems/gemstash
|
364
412
|
licenses:
|
365
413
|
- MIT
|
366
414
|
metadata: {}
|
@@ -372,15 +420,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
372
420
|
requirements:
|
373
421
|
- - ">="
|
374
422
|
- !ruby/object:Gem::Version
|
375
|
-
version: '
|
423
|
+
version: '2.4'
|
376
424
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
377
425
|
requirements:
|
378
426
|
- - ">="
|
379
427
|
- !ruby/object:Gem::Version
|
380
428
|
version: '0'
|
381
429
|
requirements: []
|
382
|
-
|
383
|
-
rubygems_version: 2.7.6
|
430
|
+
rubygems_version: 3.0.1
|
384
431
|
signing_key:
|
385
432
|
specification_version: 4
|
386
433
|
summary: A place to stash gems you'll need
|