gemstash 2.1.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
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: []