gemstash 2.1.0 → 2.2.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.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -0
  3. data/lib/gemstash/cache.rb +37 -0
  4. data/lib/gemstash/cli/authorize.rb +2 -2
  5. data/lib/gemstash/cli/setup.rb +11 -3
  6. data/lib/gemstash/configuration.rb +1 -1
  7. data/lib/gemstash/dependencies.rb +2 -2
  8. data/lib/gemstash/env.rb +2 -0
  9. data/lib/gemstash/gem_fetcher.rb +2 -2
  10. data/lib/gemstash/gem_pusher.rb +2 -2
  11. data/lib/gemstash/gem_source/private_source.rb +3 -3
  12. data/lib/gemstash/gem_source.rb +2 -2
  13. data/lib/gemstash/http_client.rb +8 -3
  14. data/lib/gemstash/logging.rb +1 -1
  15. data/lib/gemstash/man/gemstash-authorize.1 +36 -21
  16. data/lib/gemstash/man/gemstash-authorize.1.txt +21 -19
  17. data/lib/gemstash/man/gemstash-configuration.5 +118 -106
  18. data/lib/gemstash/man/gemstash-configuration.5.txt +105 -103
  19. data/lib/gemstash/man/gemstash-customize.7 +83 -68
  20. data/lib/gemstash/man/gemstash-customize.7.txt +63 -62
  21. data/lib/gemstash/man/gemstash-debugging.7 +24 -9
  22. data/lib/gemstash/man/gemstash-debugging.7.txt +11 -9
  23. data/lib/gemstash/man/gemstash-deploy.7 +30 -15
  24. data/lib/gemstash/man/gemstash-deploy.7.txt +18 -16
  25. data/lib/gemstash/man/gemstash-mirror.7 +25 -10
  26. data/lib/gemstash/man/gemstash-mirror.7.txt +9 -7
  27. data/lib/gemstash/man/gemstash-multiple-sources.7 +34 -20
  28. data/lib/gemstash/man/gemstash-multiple-sources.7.txt +30 -29
  29. data/lib/gemstash/man/gemstash-private-gems.7 +55 -40
  30. data/lib/gemstash/man/gemstash-private-gems.7.txt +40 -38
  31. data/lib/gemstash/man/gemstash-readme.7 +61 -49
  32. data/lib/gemstash/man/gemstash-readme.7.txt +58 -58
  33. data/lib/gemstash/man/gemstash-setup.1 +36 -21
  34. data/lib/gemstash/man/gemstash-setup.1.txt +19 -17
  35. data/lib/gemstash/man/gemstash-start.1 +29 -14
  36. data/lib/gemstash/man/gemstash-start.1.txt +14 -12
  37. data/lib/gemstash/man/gemstash-status.1 +27 -12
  38. data/lib/gemstash/man/gemstash-status.1.txt +12 -10
  39. data/lib/gemstash/man/gemstash-stop.1 +27 -12
  40. data/lib/gemstash/man/gemstash-stop.1.txt +12 -10
  41. data/lib/gemstash/man/gemstash-version.1 +25 -10
  42. data/lib/gemstash/man/gemstash-version.1.txt +7 -5
  43. data/lib/gemstash/storage.rb +5 -4
  44. data/lib/gemstash/upstream.rb +6 -5
  45. data/lib/gemstash/version.rb +2 -2
  46. data/lib/gemstash/web.rb +6 -4
  47. data/lib/gemstash.rb +1 -1
  48. metadata +31 -157
@@ -1,22 +1,37 @@
1
- .\" Automatically generated by Pandoc 2.5
1
+ <!-- Automatically generated by Pandoc -->
2
+ .\" Automatically generated by Pandoc 3.0.1
2
3
  .\"
3
- .TH "gemstash\-version" "1" "December 14, 2015" "" ""
4
+ .\" Define V font for inline verbatim, using C font in formats
5
+ .\" that render this, and otherwise B font.
6
+ .ie "\f[CB]x\f[]"x" \{\
7
+ . ftr V B
8
+ . ftr VI BI
9
+ . ftr VB B
10
+ . ftr VBI BI
11
+ .\}
12
+ .el \{\
13
+ . ftr V CR
14
+ . ftr VI CI
15
+ . ftr VB CB
16
+ . ftr VBI CBI
17
+ .\}
18
+ .TH "gemstash-version" "1" "December 14, 2015" "" ""
4
19
  .hy
5
- .SH NAME
20
+ .SH Name
6
21
  .PP
7
- gemstash\-version \- Show what version of Gemstash you are using
8
- .SH SYNOPSIS
22
+ gemstash-version - Show what version of Gemstash you are using
23
+ .SH Synopsis
9
24
  .PP
10
- \f[C]gemstash version\f[R]
11
- .SH DESCRIPTION
25
+ \f[V]gemstash version\f[R]
26
+ .SH Description
12
27
  .PP
13
28
  Show what version of Gemstash you are using.
14
- .SS USAGE
29
+ .SS Usage
15
30
  .IP
16
31
  .nf
17
32
  \f[C]
18
33
  gemstash version
19
- gemstash \-\-version
20
- gemstash \-v
34
+ gemstash --version
35
+ gemstash -v
21
36
  \f[R]
22
37
  .fi
@@ -2,16 +2,18 @@ gemstash-version(1) gemstash-version(1)
2
2
 
3
3
 
4
4
 
5
- 1mNAME0m
5
+ <!-- Automatically generated by Pandoc -->
6
+
7
+ 1mName0m
6
8
  gemstash-version - Show what version of Gemstash you are using
7
9
 
8
- 1mSYNOPSIS0m
9
- gemstash version
10
+ 1mSynopsis0m
11
+ 1mgemstash version0m
10
12
 
11
- 1mDESCRIPTION0m
13
+ 1mDescription0m
12
14
  Show what version of Gemstash you are using.
13
15
 
14
- 1mUSAGE0m
16
+ 1mUsage0m
15
17
  gemstash version
16
18
  gemstash --version
17
19
  gemstash -v
@@ -68,7 +68,7 @@ module Gemstash
68
68
  end
69
69
  end
70
70
 
71
- YAML.load_file(file)
71
+ YAML.safe_load_file(file, permitted_classes: [Symbol])
72
72
  end
73
73
 
74
74
  private
@@ -94,6 +94,7 @@ module Gemstash
94
94
  include Gemstash::Env::Helper
95
95
  include Gemstash::Logging
96
96
  attr_reader :name, :folder
97
+
97
98
  VERSION = 1
98
99
 
99
100
  # If the storage engine detects a resource was originally saved from a newer
@@ -195,7 +196,7 @@ module Gemstash
195
196
  # @param props [Hash] the properties to add
196
197
  # @return [Gemstash::Resource] self for chaining purposes
197
198
  def update_properties(props)
198
- load_properties(true)
199
+ load_properties(force: true)
199
200
 
200
201
  deep_merge = proc do |_, old_value, new_value|
201
202
  if old_value.is_a?(Hash) && new_value.is_a?(Hash)
@@ -276,11 +277,11 @@ module Gemstash
276
277
  @content[key] = read_file(content_filename(key))
277
278
  end
278
279
 
279
- def load_properties(force = false)
280
+ def load_properties(force: false)
280
281
  return if @properties && !force
281
282
  return unless File.exist?(properties_filename)
282
283
 
283
- @properties = YAML.load_file(properties_filename) || {}
284
+ @properties = YAML.safe_load_file(properties_filename, permitted_classes: [Symbol]) || {}
284
285
  check_resource_version
285
286
  end
286
287
 
@@ -1,10 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "digest"
4
+ require "forwardable"
4
5
  require "uri"
5
6
 
6
7
  module Gemstash
7
- #:nodoc:
8
+ # :nodoc:
8
9
  class Upstream
9
10
  extend Forwardable
10
11
 
@@ -15,7 +16,7 @@ module Gemstash
15
16
  def initialize(upstream, user_agent: nil)
16
17
  @uri = URI(CGI.unescape(upstream.to_s))
17
18
  @user_agent = user_agent
18
- raise "URL '#{@uri}' is not valid!" unless @uri.to_s =~ URI::DEFAULT_PARSER.make_regexp
19
+ raise "URL '#{@uri}' is not valid!" unless @uri.to_s&.match?(URI::DEFAULT_PARSER.make_regexp)
19
20
  end
20
21
 
21
22
  def url(path = nil, params = nil)
@@ -23,7 +24,7 @@ module Gemstash
23
24
 
24
25
  unless path.to_s.empty?
25
26
  base = "#{base}/" unless base.end_with?("/")
26
- path = path[1..-1] if path.to_s.start_with?("/")
27
+ path = path[1..] if path.to_s.start_with?("/")
27
28
  end
28
29
 
29
30
  params = "?#{params}" if !params.nil? && !params.empty?
@@ -31,7 +32,7 @@ module Gemstash
31
32
  end
32
33
 
33
34
  def auth?
34
- !user.to_s.empty? && !password.to_s.empty?
35
+ !user.to_s.empty? || !password.to_s.empty?
35
36
  end
36
37
 
37
38
  # Utilized as the parent directory for cached gems
@@ -45,7 +46,7 @@ module Gemstash
45
46
  Digest::MD5.hexdigest(to_s)
46
47
  end
47
48
 
48
- #:nodoc:
49
+ # :nodoc:
49
50
  class GemName
50
51
  def initialize(upstream, gem_name)
51
52
  @upstream = upstream
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- #:nodoc:
3
+ # :nodoc:
4
4
  module Gemstash
5
- VERSION = "2.1.0"
5
+ VERSION = "2.2.1"
6
6
  end
data/lib/gemstash/web.rb CHANGED
@@ -5,11 +5,13 @@ require "json"
5
5
  require "gemstash"
6
6
 
7
7
  module Gemstash
8
- #:nodoc:
8
+ # :nodoc:
9
9
  class Web < Sinatra::Base
10
- def initialize(gemstash_env: nil, http_client_builder: nil)
11
- @gemstash_env = gemstash_env || Gemstash::Env.new
12
- @http_client_builder = http_client_builder || Gemstash::HTTPClient
10
+ ruby2_keywords def initialize(options = {})
11
+ raise ArgumentError unless options.is_a?(Hash)
12
+
13
+ @gemstash_env = options[:gemstash_env] || Gemstash::Env.new
14
+ @http_client_builder = options[:http_client_builder] || Gemstash::HTTPClient
13
15
  Gemstash::Env.current = @gemstash_env
14
16
  super()
15
17
  end
data/lib/gemstash.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- #:nodoc:
3
+ # :nodoc:
4
4
  module Gemstash
5
5
  autoload :ApiKeyAuthorization, "gemstash/api_key_authorization"
6
6
  autoload :Authorization, "gemstash/authorization"
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.1.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andre Arko
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-27 00:00:00.000000000 Z
11
+ date: 2023-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -34,16 +34,22 @@ dependencies:
34
34
  name: dalli
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '2.7'
39
+ version: 3.2.3
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '4'
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
- - - "~>"
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 3.2.3
50
+ - - "<"
45
51
  - !ruby/object:Gem::Version
46
- version: '2.7'
52
+ version: '4'
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: faraday
49
55
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +92,20 @@ dependencies:
86
92
  - - "~>"
87
93
  - !ruby/object:Gem::Version
88
94
  version: '1.1'
95
+ - !ruby/object:Gem::Dependency
96
+ name: psych
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ version: 3.2.1
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 3.2.1
89
109
  - !ruby/object:Gem::Dependency
90
110
  name: puma
91
111
  requirement: !ruby/object:Gem::Requirement
@@ -176,152 +196,6 @@ dependencies:
176
196
  - - "~>"
177
197
  - !ruby/object:Gem::Version
178
198
  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'
193
- - !ruby/object:Gem::Dependency
194
- name: bundler
195
- requirement: !ruby/object:Gem::Requirement
196
- requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: '1.11'
200
- - - "<"
201
- - !ruby/object:Gem::Version
202
- version: '3.0'
203
- type: :development
204
- prerelease: false
205
- version_requirements: !ruby/object:Gem::Requirement
206
- requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- version: '1.11'
210
- - - "<"
211
- - !ruby/object:Gem::Version
212
- version: '3.0'
213
- - !ruby/object:Gem::Dependency
214
- name: citrus
215
- requirement: !ruby/object:Gem::Requirement
216
- requirements:
217
- - - "~>"
218
- - !ruby/object:Gem::Version
219
- version: '3.0'
220
- type: :development
221
- prerelease: false
222
- version_requirements: !ruby/object:Gem::Requirement
223
- requirements:
224
- - - "~>"
225
- - !ruby/object:Gem::Version
226
- version: '3.0'
227
- - !ruby/object:Gem::Dependency
228
- name: octokit
229
- requirement: !ruby/object:Gem::Requirement
230
- requirements:
231
- - - "~>"
232
- - !ruby/object:Gem::Version
233
- version: '4.2'
234
- type: :development
235
- prerelease: false
236
- version_requirements: !ruby/object:Gem::Requirement
237
- requirements:
238
- - - "~>"
239
- - !ruby/object:Gem::Version
240
- version: '4.2'
241
- - !ruby/object:Gem::Dependency
242
- name: pandoc_object_filters
243
- requirement: !ruby/object:Gem::Requirement
244
- requirements:
245
- - - "~>"
246
- - !ruby/object:Gem::Version
247
- version: '0.2'
248
- type: :development
249
- prerelease: false
250
- version_requirements: !ruby/object:Gem::Requirement
251
- requirements:
252
- - - "~>"
253
- - !ruby/object:Gem::Version
254
- version: '0.2'
255
- - !ruby/object:Gem::Dependency
256
- name: rack-test
257
- requirement: !ruby/object:Gem::Requirement
258
- requirements:
259
- - - "~>"
260
- - !ruby/object:Gem::Version
261
- version: '1.1'
262
- type: :development
263
- prerelease: false
264
- version_requirements: !ruby/object:Gem::Requirement
265
- requirements:
266
- - - "~>"
267
- - !ruby/object:Gem::Version
268
- version: '1.1'
269
- - !ruby/object:Gem::Dependency
270
- name: rake
271
- requirement: !ruby/object:Gem::Requirement
272
- requirements:
273
- - - "~>"
274
- - !ruby/object:Gem::Version
275
- version: '12.3'
276
- type: :development
277
- prerelease: false
278
- version_requirements: !ruby/object:Gem::Requirement
279
- requirements:
280
- - - "~>"
281
- - !ruby/object:Gem::Version
282
- version: '12.3'
283
- - !ruby/object:Gem::Dependency
284
- name: rspec
285
- requirement: !ruby/object:Gem::Requirement
286
- requirements:
287
- - - "~>"
288
- - !ruby/object:Gem::Version
289
- version: '3.3'
290
- type: :development
291
- prerelease: false
292
- version_requirements: !ruby/object:Gem::Requirement
293
- requirements:
294
- - - "~>"
295
- - !ruby/object:Gem::Version
296
- version: '3.3'
297
- - !ruby/object:Gem::Dependency
298
- name: rubocop
299
- requirement: !ruby/object:Gem::Requirement
300
- requirements:
301
- - - '='
302
- - !ruby/object:Gem::Version
303
- version: 0.67.2
304
- type: :development
305
- prerelease: false
306
- version_requirements: !ruby/object:Gem::Requirement
307
- requirements:
308
- - - '='
309
- - !ruby/object:Gem::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
325
199
  description: Gemstash acts as a local RubyGems server, caching copies of gems from
326
200
  RubyGems.org automatically, and eventually letting you push your own private gems
327
201
  as well.
@@ -412,7 +286,7 @@ homepage: https://github.com/rubygems/gemstash
412
286
  licenses:
413
287
  - MIT
414
288
  metadata: {}
415
- post_install_message:
289
+ post_install_message:
416
290
  rdoc_options: []
417
291
  require_paths:
418
292
  - lib
@@ -420,15 +294,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
420
294
  requirements:
421
295
  - - ">="
422
296
  - !ruby/object:Gem::Version
423
- version: '2.4'
297
+ version: '2.7'
424
298
  required_rubygems_version: !ruby/object:Gem::Requirement
425
299
  requirements:
426
300
  - - ">="
427
301
  - !ruby/object:Gem::Version
428
302
  version: '0'
429
303
  requirements: []
430
- rubygems_version: 3.0.1
431
- signing_key:
304
+ rubygems_version: 3.4.3
305
+ signing_key:
432
306
  specification_version: 4
433
307
  summary: A place to stash gems you'll need
434
308
  test_files: []