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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -1
- data/README.md +1 -1
- data/lib/bundler/build_metadata.rb +2 -2
- data/lib/bundler/cli/check.rb +1 -1
- data/lib/bundler/cli/gem.rb +19 -2
- data/lib/bundler/cli/info.rb +11 -4
- data/lib/bundler/cli/issue.rb +4 -3
- data/lib/bundler/cli/remove.rb +1 -2
- data/lib/bundler/cli.rb +1 -0
- data/lib/bundler/compact_index_client.rb +2 -2
- data/lib/bundler/definition.rb +16 -6
- data/lib/bundler/digest.rb +71 -0
- data/lib/bundler/errors.rb +18 -2
- data/lib/bundler/fetcher.rb +2 -1
- data/lib/bundler/friendly_errors.rb +5 -30
- data/lib/bundler/gem_helper.rb +6 -17
- data/lib/bundler/installer.rb +0 -1
- data/lib/bundler/plugin/installer.rb +2 -0
- data/lib/bundler/plugin.rb +23 -6
- data/lib/bundler/rubygems_ext.rb +4 -0
- data/lib/bundler/rubygems_gem_installer.rb +20 -4
- data/lib/bundler/rubygems_integration.rb +28 -9
- data/lib/bundler/runtime.rb +1 -1
- data/lib/bundler/settings.rb +9 -1
- data/lib/bundler/source/git.rb +22 -4
- data/lib/bundler/source/rubygems.rb +43 -72
- data/lib/bundler/source.rb +2 -0
- data/lib/bundler/source_list.rb +4 -0
- data/lib/bundler/spec_set.rb +1 -1
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +2 -1
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
- data/lib/bundler/vendor/connection_pool/LICENSE +20 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +19 -21
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +1 -1
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/wrapper.rb +57 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +39 -74
- data/lib/bundler/vendor/fileutils/LICENSE.txt +22 -0
- data/lib/bundler/vendor/molinillo/LICENSE +9 -0
- data/lib/bundler/vendor/net-http-persistent/README.rdoc +82 -0
- data/lib/bundler/vendor/thor/LICENSE.md +20 -0
- data/lib/bundler/vendor/uri/LICENSE.txt +22 -0
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +2 -2
- data/lib/bundler.rb +13 -18
- metadata +14 -7
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +0 -66
@@ -1,14 +1,18 @@
|
|
1
|
-
|
2
|
-
require_relative
|
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
|
6
|
-
# among many threads. Note:
|
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,
|
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 = :"
|
54
|
-
@key_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,
|
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
|
-
|
117
|
-
|
118
|
-
|
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.
|
data/lib/bundler/version.rb
CHANGED
data/lib/bundler/worker.rb
CHANGED
@@ -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
|
660
|
-
|
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
|
-
|
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",
|
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.
|
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-
|
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.
|
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
|