bundler 2.2.26 → 2.2.30

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bundler might be problematic. Click here for more details.

Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -1
  3. data/README.md +1 -1
  4. data/lib/bundler/build_metadata.rb +2 -2
  5. data/lib/bundler/cli/check.rb +1 -1
  6. data/lib/bundler/cli/gem.rb +19 -2
  7. data/lib/bundler/cli/info.rb +11 -4
  8. data/lib/bundler/cli/issue.rb +4 -3
  9. data/lib/bundler/cli/remove.rb +1 -2
  10. data/lib/bundler/cli.rb +1 -0
  11. data/lib/bundler/compact_index_client.rb +2 -2
  12. data/lib/bundler/definition.rb +16 -6
  13. data/lib/bundler/digest.rb +71 -0
  14. data/lib/bundler/errors.rb +18 -2
  15. data/lib/bundler/fetcher.rb +2 -1
  16. data/lib/bundler/friendly_errors.rb +5 -30
  17. data/lib/bundler/gem_helper.rb +6 -17
  18. data/lib/bundler/installer.rb +0 -1
  19. data/lib/bundler/plugin/installer.rb +2 -0
  20. data/lib/bundler/plugin.rb +23 -6
  21. data/lib/bundler/rubygems_ext.rb +4 -0
  22. data/lib/bundler/rubygems_gem_installer.rb +20 -4
  23. data/lib/bundler/rubygems_integration.rb +28 -9
  24. data/lib/bundler/runtime.rb +1 -1
  25. data/lib/bundler/settings.rb +9 -1
  26. data/lib/bundler/source/git.rb +22 -4
  27. data/lib/bundler/source/rubygems.rb +43 -72
  28. data/lib/bundler/source.rb +2 -0
  29. data/lib/bundler/source_list.rb +4 -0
  30. data/lib/bundler/spec_set.rb +1 -1
  31. data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +2 -1
  32. data/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  33. data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
  34. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
  35. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
  36. data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
  37. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
  38. data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
  39. data/lib/bundler/vendor/molinillo/LICENSE +9 -0
  40. data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
  41. data/lib/bundler/vendor/thor/LICENSE.md +20 -0
  42. data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
  43. data/lib/bundler/version.rb +1 -1
  44. data/lib/bundler/worker.rb +2 -2
  45. data/lib/bundler.rb +13 -18
  46. metadata +14 -7
  47. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
@@ -1,14 +1,18 @@
1
- require_relative 'connection_pool/version'
2
- require_relative 'connection_pool/timed_stack'
1
+ require "timeout"
2
+ require_relative "connection_pool/version"
3
3
 
4
+ class Bundler::ConnectionPool
5
+ class Error < ::RuntimeError; end
6
+ class PoolShuttingDownError < ::Bundler::ConnectionPool::Error; end
7
+ class TimeoutError < ::Timeout::Error; end
8
+ end
4
9
 
5
- # Generic connection pool class for e.g. sharing a limited number of network connections
6
- # among many threads. Note: Connections are lazily created.
10
+ # Generic connection pool class for sharing a limited number of objects or network connections
11
+ # among many threads. Note: pool elements are lazily created.
7
12
  #
8
13
  # Example usage with block (faster):
9
14
  #
10
15
  # @pool = Bundler::ConnectionPool.new { Redis.new }
11
- #
12
16
  # @pool.with do |redis|
13
17
  # redis.lpop('my-list') if redis.llen('my-list') > 0
14
18
  # end
@@ -34,29 +38,23 @@ require_relative 'connection_pool/timed_stack'
34
38
  class Bundler::ConnectionPool
35
39
  DEFAULTS = {size: 5, timeout: 5}
36
40
 
37
- class Error < RuntimeError
38
- end
39
-
40
41
  def self.wrap(options, &block)
41
42
  Wrapper.new(options, &block)
42
43
  end
43
44
 
44
45
  def initialize(options = {}, &block)
45
- raise ArgumentError, 'Connection pool requires a block' unless block
46
+ raise ArgumentError, "Connection pool requires a block" unless block
46
47
 
47
48
  options = DEFAULTS.merge(options)
48
49
 
49
- @size = options.fetch(:size)
50
+ @size = Integer(options.fetch(:size))
50
51
  @timeout = options.fetch(:timeout)
51
52
 
52
53
  @available = TimedStack.new(@size, &block)
53
- @key = :"current-#{@available.object_id}"
54
- @key_count = :"current-#{@available.object_id}-count"
54
+ @key = :"pool-#{@available.object_id}"
55
+ @key_count = :"pool-#{@available.object_id}-count"
55
56
  end
56
57
 
57
- if Thread.respond_to?(:handle_interrupt)
58
-
59
- # MRI
60
58
  def with(options = {})
61
59
  Thread.handle_interrupt(Exception => :never) do
62
60
  conn = checkout(options)
@@ -69,28 +67,15 @@ if Thread.respond_to?(:handle_interrupt)
69
67
  end
70
68
  end
71
69
  end
72
-
73
- else
74
-
75
- # jruby 1.7.x
76
- def with(options = {})
77
- conn = checkout(options)
78
- begin
79
- yield conn
80
- ensure
81
- checkin
82
- end
83
- end
84
-
85
- end
70
+ alias then with
86
71
 
87
72
  def checkout(options = {})
88
73
  if ::Thread.current[@key]
89
- ::Thread.current[@key_count]+= 1
74
+ ::Thread.current[@key_count] += 1
90
75
  ::Thread.current[@key]
91
76
  else
92
- ::Thread.current[@key_count]= 1
93
- ::Thread.current[@key]= @available.pop(options[:timeout] || @timeout)
77
+ ::Thread.current[@key_count] = 1
78
+ ::Thread.current[@key] = @available.pop(options[:timeout] || @timeout)
94
79
  end
95
80
  end
96
81
 
@@ -98,64 +83,44 @@ end
98
83
  if ::Thread.current[@key]
99
84
  if ::Thread.current[@key_count] == 1
100
85
  @available.push(::Thread.current[@key])
101
- ::Thread.current[@key]= nil
86
+ ::Thread.current[@key] = nil
87
+ ::Thread.current[@key_count] = nil
102
88
  else
103
- ::Thread.current[@key_count]-= 1
89
+ ::Thread.current[@key_count] -= 1
104
90
  end
105
91
  else
106
- raise Bundler::ConnectionPool::Error, 'no connections are checked out'
92
+ raise Bundler::ConnectionPool::Error, "no connections are checked out"
107
93
  end
108
94
 
109
95
  nil
110
96
  end
111
97
 
98
+ ##
99
+ # Shuts down the Bundler::ConnectionPool by passing each connection to +block+ and
100
+ # then removing it from the pool. Attempting to checkout a connection after
101
+ # shutdown will raise +Bundler::ConnectionPool::PoolShuttingDownError+.
102
+
112
103
  def shutdown(&block)
113
104
  @available.shutdown(&block)
114
105
  end
115
106
 
116
- # Size of this connection pool
117
- def size
118
- @size
107
+ ##
108
+ # Reloads the Bundler::ConnectionPool by passing each connection to +block+ and then
109
+ # removing it the pool. Subsequent checkouts will create new connections as
110
+ # needed.
111
+
112
+ def reload(&block)
113
+ @available.shutdown(reload: true, &block)
119
114
  end
120
115
 
116
+ # Size of this connection pool
117
+ attr_reader :size
118
+
121
119
  # Number of pool entries available for checkout at this instant.
122
120
  def available
123
121
  @available.length
124
122
  end
125
-
126
- private
127
-
128
- class Wrapper < ::BasicObject
129
- METHODS = [:with, :pool_shutdown]
130
-
131
- def initialize(options = {}, &block)
132
- @pool = options.fetch(:pool) { ::Bundler::ConnectionPool.new(options, &block) }
133
- end
134
-
135
- def with(&block)
136
- @pool.with(&block)
137
- end
138
-
139
- def pool_shutdown(&block)
140
- @pool.shutdown(&block)
141
- end
142
-
143
- def pool_size
144
- @pool.size
145
- end
146
-
147
- def pool_available
148
- @pool.available
149
- end
150
-
151
- def respond_to?(id, *args)
152
- METHODS.include?(id) || with { |c| c.respond_to?(id, *args) }
153
- end
154
-
155
- def method_missing(name, *args, &block)
156
- with do |connection|
157
- connection.send(name, *args, &block)
158
- end
159
- end
160
- end
161
123
  end
124
+
125
+ require_relative "connection_pool/timed_stack"
126
+ require_relative "connection_pool/wrapper"
@@ -0,0 +1,22 @@
1
+ Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions
5
+ are met:
6
+ 1. Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ 2. Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22
+ SUCH DAMAGE.
@@ -0,0 +1,9 @@
1
+ This project is licensed under the MIT license.
2
+
3
+ Copyright (c) 2014 Samuel E. Giddins segiddins@segiddins.me
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,82 @@
1
+ = net-http-persistent
2
+
3
+ home :: https://github.com/drbrain/net-http-persistent
4
+ rdoc :: http://docs.seattlerb.org/net-http-persistent
5
+
6
+ == DESCRIPTION:
7
+
8
+ Manages persistent connections using Net::HTTP including a thread pool for
9
+ connecting to multiple hosts.
10
+
11
+ Using persistent HTTP connections can dramatically increase the speed of HTTP.
12
+ Creating a new HTTP connection for every request involves an extra TCP
13
+ round-trip and causes TCP congestion avoidance negotiation to start over.
14
+
15
+ Net::HTTP supports persistent connections with some API methods but does not
16
+ make setting up a single persistent connection or managing multiple
17
+ connections easy. Net::HTTP::Persistent wraps Net::HTTP and allows you to
18
+ focus on how to make HTTP requests.
19
+
20
+ == FEATURES/PROBLEMS:
21
+
22
+ * Supports TLS with secure defaults
23
+ * Thread-safe
24
+ * Pure ruby
25
+
26
+ == SYNOPSIS
27
+
28
+ The following example will make two requests to the same server. The
29
+ connection is kept alive between requests:
30
+
31
+ require 'net/http/persistent'
32
+
33
+ uri = URI 'http://example.com/awesome/web/service'
34
+
35
+ http = Net::HTTP::Persistent.new name: 'my_app_name'
36
+
37
+ # perform a GET
38
+ response = http.request uri
39
+
40
+ # create a POST
41
+ post_uri = uri + 'create'
42
+ post = Net::HTTP::Post.new post_uri.path
43
+ post.set_form_data 'some' => 'cool data'
44
+
45
+ # perform the POST, the URI is always required
46
+ response = http.request post_uri, post
47
+
48
+ # if you are done making http requests, or won't make requests for several
49
+ # minutes
50
+ http.shutdown
51
+
52
+ Please see the documentation on Net::HTTP::Persistent for more information,
53
+ including SSL connection verification, header handling and tunable options.
54
+
55
+ == INSTALL:
56
+
57
+ gem install net-http-persistent
58
+
59
+ == LICENSE:
60
+
61
+ (The MIT License)
62
+
63
+ Copyright (c) Eric Hodel, Aaron Patterson
64
+
65
+ Permission is hereby granted, free of charge, to any person obtaining
66
+ a copy of this software and associated documentation files (the
67
+ 'Software'), to deal in the Software without restriction, including
68
+ without limitation the rights to use, copy, modify, merge, publish,
69
+ distribute, sublicense, and/or sell copies of the Software, and to
70
+ permit persons to whom the Software is furnished to do so, subject to
71
+ the following conditions:
72
+
73
+ The above copyright notice and this permission notice shall be
74
+ included in all copies or substantial portions of the Software.
75
+
76
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
77
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
78
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
79
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
80
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
81
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
82
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 Yehuda Katz, Eric Hodel, et al.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,22 @@
1
+ Copyright (C) 1993-2013 Yukihiro Matsumoto. All rights reserved.
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions
5
+ are met:
6
+ 1. Redistributions of source code must retain the above copyright
7
+ notice, this list of conditions and the following disclaimer.
8
+ 2. Redistributions in binary form must reproduce the above copyright
9
+ notice, this list of conditions and the following disclaimer in the
10
+ documentation and/or other materials provided with the distribution.
11
+
12
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
22
+ SUCH DAMAGE.
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Bundler
4
- VERSION = "2.2.26".freeze
4
+ VERSION = "2.2.30".freeze
5
5
 
6
6
  def self.bundler_major_version
7
7
  @bundler_major_version ||= VERSION.split(".").first.to_i
@@ -21,8 +21,8 @@ module Bundler
21
21
  # @param func [Proc] job to run in inside the worker pool
22
22
  def initialize(size, name, func)
23
23
  @name = name
24
- @request_queue = Queue.new
25
- @response_queue = Queue.new
24
+ @request_queue = Thread::Queue.new
25
+ @response_queue = Thread::Queue.new
26
26
  @func = func
27
27
  @size = size
28
28
  @threads = nil
data/lib/bundler.rb CHANGED
@@ -37,12 +37,13 @@ module Bundler
37
37
  environment_preserver = EnvironmentPreserver.from_env
38
38
  ORIGINAL_ENV = environment_preserver.restore
39
39
  environment_preserver.replace_with_backup
40
- SUDO_MUTEX = Mutex.new
40
+ SUDO_MUTEX = Thread::Mutex.new
41
41
 
42
42
  autoload :Definition, File.expand_path("bundler/definition", __dir__)
43
43
  autoload :Dependency, File.expand_path("bundler/dependency", __dir__)
44
44
  autoload :DepProxy, File.expand_path("bundler/dep_proxy", __dir__)
45
45
  autoload :Deprecate, File.expand_path("bundler/deprecate", __dir__)
46
+ autoload :Digest, File.expand_path("bundler/digest", __dir__)
46
47
  autoload :Dsl, File.expand_path("bundler/dsl", __dir__)
47
48
  autoload :EndpointSpecification, File.expand_path("bundler/endpoint_specification", __dir__)
48
49
  autoload :Env, File.expand_path("bundler/env", __dir__)
@@ -636,6 +637,12 @@ EOF
636
637
  @rubygems = nil
637
638
  end
638
639
 
640
+ def configure_gem_home_and_path(path = bundle_path)
641
+ configure_gem_path
642
+ configure_gem_home(path)
643
+ Bundler.rubygems.clear_paths
644
+ end
645
+
639
646
  private
640
647
 
641
648
  def eval_yaml_gemspec(path, contents)
@@ -656,29 +663,17 @@ EOF
656
663
  raise GemspecError, Dsl::DSLError.new(msg, path, e.backtrace, contents)
657
664
  end
658
665
 
659
- def configure_gem_home_and_path
660
- configure_gem_path
661
- configure_gem_home
662
- bundle_path
663
- end
664
-
665
- def configure_gem_path(env = ENV)
666
- blank_home = env["GEM_HOME"].nil? || env["GEM_HOME"].empty?
667
- if !use_system_gems?
666
+ def configure_gem_path
667
+ unless use_system_gems?
668
668
  # this needs to be empty string to cause
669
669
  # PathSupport.split_gem_path to only load up the
670
670
  # Bundler --path setting as the GEM_PATH.
671
- env["GEM_PATH"] = ""
672
- elsif blank_home
673
- possibles = [Bundler.rubygems.gem_dir, Bundler.rubygems.gem_path]
674
- paths = possibles.flatten.compact.uniq.reject(&:empty?)
675
- env["GEM_PATH"] = paths.join(File::PATH_SEPARATOR)
671
+ Bundler::SharedHelpers.set_env "GEM_PATH", ""
676
672
  end
677
673
  end
678
674
 
679
- def configure_gem_home
680
- Bundler::SharedHelpers.set_env "GEM_HOME", File.expand_path(bundle_path, root)
681
- Bundler.rubygems.clear_paths
675
+ def configure_gem_home(path)
676
+ Bundler::SharedHelpers.set_env "GEM_HOME", path.to_s
682
677
  end
683
678
 
684
679
  def tmp_home_path
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bundler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.26
4
+ version: 2.2.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Arko
@@ -19,10 +19,10 @@ authors:
19
19
  - Terence Lee
20
20
  - Carl Lerche
21
21
  - Yehuda Katz
22
- autorequire:
22
+ autorequire:
23
23
  bindir: exe
24
24
  cert_chain: []
25
- date: 2021-08-17 00:00:00.000000000 Z
25
+ date: 2021-10-26 00:00:00.000000000 Z
26
26
  dependencies: []
27
27
  description: Bundler manages an application's dependencies through its entire life,
28
28
  across many machines, systematically and repeatably
@@ -83,6 +83,7 @@ files:
83
83
  - lib/bundler/dependency.rb
84
84
  - lib/bundler/deployment.rb
85
85
  - lib/bundler/deprecate.rb
86
+ - lib/bundler/digest.rb
86
87
  - lib/bundler/dsl.rb
87
88
  - lib/bundler/endpoint_specification.rb
88
89
  - lib/bundler/env.rb
@@ -246,11 +247,14 @@ files:
246
247
  - lib/bundler/ui/shell.rb
247
248
  - lib/bundler/ui/silent.rb
248
249
  - lib/bundler/uri_credentials_filter.rb
250
+ - lib/bundler/vendor/connection_pool/LICENSE
249
251
  - lib/bundler/vendor/connection_pool/lib/connection_pool.rb
250
- - lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb
251
252
  - lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
252
253
  - lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
254
+ - lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb
255
+ - lib/bundler/vendor/fileutils/LICENSE.txt
253
256
  - lib/bundler/vendor/fileutils/lib/fileutils.rb
257
+ - lib/bundler/vendor/molinillo/LICENSE
254
258
  - lib/bundler/vendor/molinillo/lib/molinillo.rb
255
259
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
256
260
  - lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
@@ -271,10 +275,12 @@ files:
271
275
  - lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
272
276
  - lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
273
277
  - lib/bundler/vendor/molinillo/lib/molinillo/state.rb
278
+ - lib/bundler/vendor/net-http-persistent/README.rdoc
274
279
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
275
280
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
276
281
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
277
282
  - lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
283
+ - lib/bundler/vendor/thor/LICENSE.md
278
284
  - lib/bundler/vendor/thor/lib/thor.rb
279
285
  - lib/bundler/vendor/thor/lib/thor/actions.rb
280
286
  - lib/bundler/vendor/thor/lib/thor/actions/create_file.rb
@@ -307,6 +313,7 @@ files:
307
313
  - lib/bundler/vendor/thor/lib/thor/util.rb
308
314
  - lib/bundler/vendor/thor/lib/thor/version.rb
309
315
  - lib/bundler/vendor/tmpdir/lib/tmpdir.rb
316
+ - lib/bundler/vendor/uri/LICENSE.txt
310
317
  - lib/bundler/vendor/uri/lib/uri.rb
311
318
  - lib/bundler/vendor/uri/lib/uri/common.rb
312
319
  - lib/bundler/vendor/uri/lib/uri/file.rb
@@ -339,7 +346,7 @@ metadata:
339
346
  changelog_uri: https://github.com/rubygems/rubygems/blob/master/bundler/CHANGELOG.md
340
347
  homepage_uri: https://bundler.io/
341
348
  source_code_uri: https://github.com/rubygems/rubygems/
342
- post_install_message:
349
+ post_install_message:
343
350
  rdoc_options: []
344
351
  require_paths:
345
352
  - lib
@@ -354,8 +361,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
361
  - !ruby/object:Gem::Version
355
362
  version: 2.5.2
356
363
  requirements: []
357
- rubygems_version: 3.2.26
358
- signing_key:
364
+ rubygems_version: 3.2.30
365
+ signing_key:
359
366
  specification_version: 4
360
367
  summary: The best way to manage your application's dependencies
361
368
  test_files: []
@@ -1,66 +0,0 @@
1
- # Global monotonic clock from Concurrent Ruby 1.0.
2
- # Copyright (c) Jerry D'Antonio -- released under the MIT license.
3
- # Slightly modified; used with permission.
4
- # https://github.com/ruby-concurrency/concurrent-ruby
5
-
6
- require 'thread'
7
-
8
- class Bundler::ConnectionPool
9
-
10
- class_definition = Class.new do
11
-
12
- if defined?(Process::CLOCK_MONOTONIC)
13
-
14
- # @!visibility private
15
- def get_time
16
- Process.clock_gettime(Process::CLOCK_MONOTONIC)
17
- end
18
-
19
- elsif defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
20
-
21
- # @!visibility private
22
- def get_time
23
- java.lang.System.nanoTime() / 1_000_000_000.0
24
- end
25
-
26
- else
27
-
28
- # @!visibility private
29
- def initialize
30
- @mutex = Mutex.new
31
- @last_time = Time.now.to_f
32
- end
33
-
34
- # @!visibility private
35
- def get_time
36
- @mutex.synchronize do
37
- now = Time.now.to_f
38
- if @last_time < now
39
- @last_time = now
40
- else # clock has moved back in time
41
- @last_time += 0.000_001
42
- end
43
- end
44
- end
45
- end
46
- end
47
-
48
- ##
49
- # Clock that cannot be set and represents monotonic time since
50
- # some unspecified starting point.
51
- #
52
- # @!visibility private
53
- GLOBAL_MONOTONIC_CLOCK = class_definition.new
54
- private_constant :GLOBAL_MONOTONIC_CLOCK
55
-
56
- class << self
57
- ##
58
- # Returns the current time a tracked by the application monotonic clock.
59
- #
60
- # @return [Float] The current monotonic time when `since` not given else
61
- # the elapsed monotonic time between `since` and the current time
62
- def monotonic_time
63
- GLOBAL_MONOTONIC_CLOCK.get_time
64
- end
65
- end
66
- end