bundler 2.0.0.pre.1 → 2.1.0.pre.3
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 +774 -574
- data/LICENSE.md +18 -19
- data/README.md +9 -8
- data/bundler.gemspec +12 -23
- data/exe/bundle +19 -3
- data/lib/bundler.rb +203 -87
- data/lib/bundler/build_metadata.rb +14 -7
- data/lib/bundler/capistrano.rb +5 -5
- data/lib/bundler/cli.rb +181 -143
- data/lib/bundler/cli/add.rb +28 -16
- data/lib/bundler/cli/cache.rb +25 -13
- data/lib/bundler/cli/common.rb +11 -12
- data/lib/bundler/cli/config.rb +161 -86
- data/lib/bundler/cli/console.rb +2 -2
- data/lib/bundler/cli/doctor.rb +4 -4
- data/lib/bundler/cli/exec.rb +4 -16
- data/lib/bundler/cli/gem.rb +5 -5
- data/lib/bundler/cli/info.rb +17 -5
- data/lib/bundler/cli/init.rb +1 -1
- data/lib/bundler/cli/install.rb +12 -11
- data/lib/bundler/cli/issue.rb +3 -3
- data/lib/bundler/cli/open.rb +10 -6
- data/lib/bundler/cli/outdated.rb +85 -81
- data/lib/bundler/cli/plugin.rb +9 -2
- data/lib/bundler/cli/pristine.rb +1 -1
- data/lib/bundler/cli/show.rb +1 -1
- data/lib/bundler/cli/update.rb +32 -12
- data/lib/bundler/compact_index_client.rb +25 -9
- data/lib/bundler/compact_index_client/updater.rb +2 -6
- data/lib/bundler/current_ruby.rb +9 -7
- data/lib/bundler/definition.rb +36 -27
- data/lib/bundler/dependency.rb +16 -4
- data/lib/bundler/deployment.rb +2 -2
- data/lib/bundler/dsl.rb +18 -42
- data/lib/bundler/env.rb +8 -13
- data/lib/bundler/environment_preserver.rb +0 -1
- data/lib/bundler/feature_flag.rb +1 -11
- data/lib/bundler/fetcher.rb +14 -11
- data/lib/bundler/fetcher/compact_index.rb +26 -12
- data/lib/bundler/fetcher/dependency.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +4 -1
- data/lib/bundler/fetcher/index.rb +4 -2
- data/lib/bundler/friendly_errors.rb +5 -6
- data/lib/bundler/gem_helper.rb +38 -25
- data/lib/bundler/gem_helpers.rb +2 -4
- data/lib/bundler/gem_tasks.rb +1 -1
- data/lib/bundler/gem_version_promoter.rb +3 -3
- data/lib/bundler/graph.rb +2 -2
- data/lib/bundler/injector.rb +10 -8
- data/lib/bundler/inline.rb +25 -20
- data/lib/bundler/installer.rb +7 -14
- data/lib/bundler/installer/gem_installer.rb +5 -1
- data/lib/bundler/installer/parallel_installer.rb +4 -8
- data/lib/bundler/installer/standalone.rb +1 -2
- data/lib/bundler/lazy_specification.rb +2 -2
- data/lib/bundler/lockfile_parser.rb +14 -21
- data/lib/bundler/match_platform.rb +1 -1
- data/lib/bundler/plugin.rb +42 -29
- data/lib/bundler/plugin/api.rb +1 -1
- data/lib/bundler/plugin/api/source.rb +2 -2
- data/lib/bundler/plugin/index.rb +14 -3
- data/lib/bundler/plugin/installer.rb +28 -15
- data/lib/bundler/psyched_yaml.rb +1 -1
- data/lib/bundler/resolver.rb +72 -24
- data/lib/bundler/resolver/spec_group.rb +3 -2
- data/lib/bundler/retry.rb +2 -2
- data/lib/bundler/ruby_version.rb +4 -19
- data/lib/bundler/rubygems_ext.rb +11 -67
- data/lib/bundler/rubygems_gem_installer.rb +1 -1
- data/lib/bundler/rubygems_integration.rb +143 -395
- data/lib/bundler/runtime.rb +2 -9
- data/lib/bundler/settings.rb +15 -48
- data/lib/bundler/setup.rb +7 -13
- data/lib/bundler/shared_helpers.rb +57 -73
- data/lib/bundler/similarity_detector.rb +2 -2
- data/lib/bundler/source.rb +5 -5
- data/lib/bundler/source/git.rb +19 -12
- data/lib/bundler/source/git/git_proxy.rb +36 -40
- data/lib/bundler/source/metadata.rb +9 -5
- data/lib/bundler/source/path.rb +13 -8
- data/lib/bundler/source/rubygems.rb +11 -5
- data/lib/bundler/source/rubygems/remote.rb +1 -2
- data/lib/bundler/source_list.rb +9 -12
- data/lib/bundler/spec_set.rb +23 -12
- data/lib/bundler/stub_specification.rb +18 -30
- data/lib/bundler/templates/Executable.bundler +23 -14
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
- data/lib/bundler/templates/newgem/Gemfile.tt +8 -2
- data/lib/bundler/templates/newgem/README.md.tt +4 -3
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +6 -27
- data/lib/bundler/templates/newgem/test/test_helper.rb.tt +1 -1
- data/lib/bundler/templates/newgem/travis.yml.tt +0 -1
- data/lib/bundler/ui.rb +3 -3
- data/lib/bundler/ui/rg_proxy.rb +1 -1
- data/lib/bundler/ui/shell.rb +4 -8
- data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
- data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
- data/lib/bundler/vendor/fileutils/lib/fileutils.rb +273 -147
- data/lib/bundler/vendor/fileutils/lib/fileutils/version.rb +5 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +6 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +30 -8
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +248 -279
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
- data/lib/bundler/vendor/thor/lib/thor.rb +12 -4
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +22 -11
- data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +7 -17
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +16 -7
- data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +19 -8
- data/lib/bundler/vendor/thor/lib/thor/base.rb +25 -24
- data/lib/bundler/vendor/thor/lib/thor/command.rb +21 -14
- data/lib/bundler/vendor/thor/lib/thor/error.rb +78 -0
- data/lib/bundler/vendor/thor/lib/thor/group.rb +3 -3
- data/lib/bundler/vendor/thor/lib/thor/invocation.rb +1 -0
- data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
- data/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb +6 -6
- data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/parser/option.rb +8 -6
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +20 -5
- data/lib/bundler/vendor/thor/lib/thor/rake_compat.rb +1 -0
- data/lib/bundler/vendor/thor/lib/thor/runner.rb +8 -6
- data/lib/bundler/vendor/thor/lib/thor/shell.rb +4 -4
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +52 -7
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +6 -2
- data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendored_fileutils.rb +1 -6
- data/lib/bundler/vendored_molinillo.rb +1 -1
- data/lib/bundler/vendored_persistent.rb +7 -5
- data/lib/bundler/vendored_thor.rb +2 -2
- data/lib/bundler/version.rb +1 -20
- data/lib/bundler/version_ranges.rb +51 -5
- data/lib/bundler/vlad.rb +3 -3
- data/lib/bundler/worker.rb +1 -3
- data/lib/bundler/yaml_serializer.rb +2 -3
- data/man/bundle-add.1 +10 -2
- data/man/bundle-add.1.txt +11 -5
- data/man/bundle-add.ronn +7 -1
- data/man/bundle-binstubs.1 +2 -2
- data/man/bundle-binstubs.1.txt +2 -2
- data/man/bundle-binstubs.ronn +1 -1
- data/man/bundle-cache.1 +55 -0
- data/man/bundle-cache.1.txt +78 -0
- data/man/{bundle-package.ronn → bundle-cache.ronn} +15 -15
- data/man/bundle-check.1 +1 -1
- data/man/bundle-check.1.txt +6 -6
- data/man/bundle-clean.1 +1 -1
- data/man/bundle-clean.1.txt +1 -1
- data/man/bundle-config.1 +36 -36
- data/man/bundle-config.1.txt +66 -67
- data/man/bundle-config.ronn +42 -40
- data/man/bundle-doctor.1 +1 -1
- data/man/bundle-doctor.1.txt +1 -1
- data/man/bundle-exec.1 +2 -2
- data/man/bundle-exec.1.txt +2 -2
- data/man/bundle-exec.ronn +1 -1
- data/man/bundle-gem.1 +1 -1
- data/man/bundle-gem.1.txt +3 -3
- data/man/bundle-info.1 +1 -1
- data/man/bundle-info.1.txt +1 -1
- data/man/bundle-init.1 +2 -2
- data/man/bundle-init.1.txt +2 -2
- data/man/bundle-init.ronn +1 -1
- data/man/bundle-inject.1 +1 -1
- data/man/bundle-inject.1.txt +1 -1
- data/man/bundle-install.1 +8 -5
- data/man/bundle-install.1.txt +56 -51
- data/man/bundle-install.ronn +9 -4
- data/man/bundle-list.1 +1 -1
- data/man/bundle-list.1.txt +1 -1
- data/man/bundle-lock.1 +1 -1
- data/man/bundle-lock.1.txt +16 -16
- data/man/bundle-open.1 +1 -1
- data/man/bundle-open.1.txt +1 -1
- data/man/bundle-outdated.1 +1 -1
- data/man/bundle-outdated.1.txt +1 -1
- data/man/bundle-platform.1 +1 -1
- data/man/bundle-platform.1.txt +1 -1
- data/man/bundle-pristine.1 +1 -1
- data/man/bundle-pristine.1.txt +1 -1
- data/man/bundle-remove.1 +1 -1
- data/man/bundle-remove.1.txt +1 -1
- data/man/bundle-show.1 +1 -1
- data/man/bundle-show.1.txt +1 -1
- data/man/bundle-update.1 +4 -4
- data/man/bundle-update.1.txt +64 -65
- data/man/bundle-update.ronn +3 -3
- data/man/bundle-viz.1 +1 -1
- data/man/bundle-viz.1.txt +1 -1
- data/man/bundle.1 +7 -3
- data/man/bundle.1.txt +11 -8
- data/man/bundle.ronn +5 -2
- data/man/gemfile.5 +17 -20
- data/man/gemfile.5.ronn +14 -18
- data/man/gemfile.5.txt +108 -112
- data/man/index.txt +1 -1
- metadata +19 -107
- data/exe/bundle_ruby +0 -60
- data/lib/bundler/cli/package.rb +0 -49
- data/lib/bundler/compatibility_guard.rb +0 -14
- data/lib/bundler/ssl_certs/.document +0 -1
- data/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
- data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
- data/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
- data/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
- data/lib/bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb +0 -129
- data/man/bundle-package.1 +0 -55
- data/man/bundle-package.1.txt +0 -79
@@ -25,6 +25,7 @@ class Bundler::Thor
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def self.included(base)
|
28
|
+
super(base)
|
28
29
|
# Hack. Make rakefile point to invoker, so rdoc task is generated properly.
|
29
30
|
rakefile = File.basename(caller[0].match(/(.*):\d+/)[1])
|
30
31
|
Rake.application.instance_variable_set(:@rakefile, rakefile)
|
@@ -1,12 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require_relative "../thor"
|
2
|
+
require_relative "group"
|
3
|
+
require_relative "core_ext/io_binary_read"
|
4
4
|
|
5
5
|
require "yaml"
|
6
|
-
require "digest"
|
6
|
+
require "digest/md5"
|
7
7
|
require "pathname"
|
8
8
|
|
9
9
|
class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLength
|
10
|
+
autoload :OpenURI, "open-uri"
|
11
|
+
|
10
12
|
map "-T" => :list, "-i" => :install, "-u" => :update, "-v" => :version
|
11
13
|
|
12
14
|
def self.banner(command, all = false, subcommand = false)
|
@@ -90,7 +92,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
90
92
|
end
|
91
93
|
|
92
94
|
thor_yaml[as] = {
|
93
|
-
:filename => Digest
|
95
|
+
:filename => Digest::MD5.hexdigest(name + as),
|
94
96
|
:location => location,
|
95
97
|
:namespaces => Bundler::Thor::Util.namespaces_in_content(contents, base)
|
96
98
|
}
|
@@ -111,7 +113,7 @@ class Bundler::Thor::Runner < Bundler::Thor #:nodoc: # rubocop:disable ClassLeng
|
|
111
113
|
|
112
114
|
desc "version", "Show Bundler::Thor version"
|
113
115
|
def version
|
114
|
-
|
116
|
+
require_relative "version"
|
115
117
|
say "Bundler::Thor #{Bundler::Thor::VERSION}"
|
116
118
|
end
|
117
119
|
|
@@ -24,9 +24,9 @@ class Bundler::Thor
|
|
24
24
|
SHELL_DELEGATED_METHODS = [:ask, :error, :set_color, :yes?, :no?, :say, :say_status, :print_in_columns, :print_table, :print_wrapped, :file_collision, :terminal_width]
|
25
25
|
attr_writer :shell
|
26
26
|
|
27
|
-
autoload :Basic, "
|
28
|
-
autoload :Color, "
|
29
|
-
autoload :HTML, "
|
27
|
+
autoload :Basic, File.expand_path("shell/basic", __dir__)
|
28
|
+
autoload :Color, File.expand_path("shell/color", __dir__)
|
29
|
+
autoload :HTML, File.expand_path("shell/html", __dir__)
|
30
30
|
|
31
31
|
# Add shell to initialize config values.
|
32
32
|
#
|
@@ -55,7 +55,7 @@ class Bundler::Thor
|
|
55
55
|
|
56
56
|
# Common methods that are delegated to the shell.
|
57
57
|
SHELL_DELEGATED_METHODS.each do |method|
|
58
|
-
module_eval <<-METHOD, __FILE__, __LINE__
|
58
|
+
module_eval <<-METHOD, __FILE__, __LINE__ + 1
|
59
59
|
def #{method}(*args,&block)
|
60
60
|
shell.#{method}(*args,&block)
|
61
61
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
class Bundler::Thor
|
2
2
|
module Shell
|
3
3
|
class Basic
|
4
|
+
DEFAULT_TERMINAL_WIDTH = 80
|
5
|
+
|
4
6
|
attr_accessor :base
|
5
7
|
attr_reader :padding
|
6
8
|
|
@@ -45,6 +47,10 @@ class Bundler::Thor
|
|
45
47
|
|
46
48
|
# Asks something to the user and receives a response.
|
47
49
|
#
|
50
|
+
# If a default value is specified it will be presented to the user
|
51
|
+
# and allows them to select that value with an empty response. This
|
52
|
+
# option is ignored when limited answers are supplied.
|
53
|
+
#
|
48
54
|
# If asked to limit the correct responses, you can pass in an
|
49
55
|
# array of acceptable answers. If one of those is not supplied,
|
50
56
|
# they will be shown a message stating that one of those answers
|
@@ -61,6 +67,8 @@ class Bundler::Thor
|
|
61
67
|
# ==== Example
|
62
68
|
# ask("What is your name?")
|
63
69
|
#
|
70
|
+
# ask("What is the planet furthest from the sun?", :default => "Pluto")
|
71
|
+
#
|
64
72
|
# ask("What is your favorite Neopolitan flavor?", :limited_to => ["strawberry", "chocolate", "vanilla"])
|
65
73
|
#
|
66
74
|
# ask("What is your password?", :echo => false)
|
@@ -222,8 +230,20 @@ class Bundler::Thor
|
|
222
230
|
paras = message.split("\n\n")
|
223
231
|
|
224
232
|
paras.map! do |unwrapped|
|
225
|
-
|
226
|
-
|
233
|
+
counter = 0
|
234
|
+
unwrapped.split(" ").inject do |memo, word|
|
235
|
+
word = word.gsub(/\n\005/, "\n").gsub(/\005/, "\n")
|
236
|
+
counter = 0 if word.include? "\n"
|
237
|
+
if (counter + word.length + 1) < width
|
238
|
+
memo = "#{memo} #{word}"
|
239
|
+
counter += (word.length + 1)
|
240
|
+
else
|
241
|
+
memo = "#{memo}\n#{word}"
|
242
|
+
counter = word.length
|
243
|
+
end
|
244
|
+
memo
|
245
|
+
end
|
246
|
+
end.compact!
|
227
247
|
|
228
248
|
paras.each do |para|
|
229
249
|
para.split("\n").each do |line|
|
@@ -239,11 +259,11 @@ class Bundler::Thor
|
|
239
259
|
#
|
240
260
|
# ==== Parameters
|
241
261
|
# destination<String>:: the destination file to solve conflicts
|
242
|
-
# block<Proc>:: an optional block that returns the value to be used in diff
|
262
|
+
# block<Proc>:: an optional block that returns the value to be used in diff and merge
|
243
263
|
#
|
244
264
|
def file_collision(destination)
|
245
265
|
return true if @always_force
|
246
|
-
options = block_given? ? "[
|
266
|
+
options = block_given? ? "[Ynaqdhm]" : "[Ynaqh]"
|
247
267
|
|
248
268
|
loop do
|
249
269
|
answer = ask(
|
@@ -267,6 +287,13 @@ class Bundler::Thor
|
|
267
287
|
when is?(:diff)
|
268
288
|
show_diff(destination, yield) if block_given?
|
269
289
|
say "Retrying..."
|
290
|
+
when is?(:merge)
|
291
|
+
if block_given? && !merge_tool.empty?
|
292
|
+
merge(destination, yield)
|
293
|
+
return nil
|
294
|
+
end
|
295
|
+
|
296
|
+
say "Please specify merge tool to `THOR_MERGE` env."
|
270
297
|
else
|
271
298
|
say file_collision_help
|
272
299
|
end
|
@@ -279,11 +306,11 @@ class Bundler::Thor
|
|
279
306
|
result = if ENV["THOR_COLUMNS"]
|
280
307
|
ENV["THOR_COLUMNS"].to_i
|
281
308
|
else
|
282
|
-
unix? ? dynamic_width :
|
309
|
+
unix? ? dynamic_width : DEFAULT_TERMINAL_WIDTH
|
283
310
|
end
|
284
|
-
result < 10 ?
|
311
|
+
result < 10 ? DEFAULT_TERMINAL_WIDTH : result
|
285
312
|
rescue
|
286
|
-
|
313
|
+
DEFAULT_TERMINAL_WIDTH
|
287
314
|
end
|
288
315
|
|
289
316
|
# Called if something goes wrong during the execution. This is used by Bundler::Thor
|
@@ -344,6 +371,7 @@ class Bundler::Thor
|
|
344
371
|
q - quit, abort
|
345
372
|
d - diff, show the differences between the old and the new
|
346
373
|
h - help, show this help
|
374
|
+
m - merge, run merge tool
|
347
375
|
HELP
|
348
376
|
end
|
349
377
|
|
@@ -432,6 +460,23 @@ class Bundler::Thor
|
|
432
460
|
end
|
433
461
|
correct_answer
|
434
462
|
end
|
463
|
+
|
464
|
+
def merge(destination, content) #:nodoc:
|
465
|
+
require "tempfile"
|
466
|
+
Tempfile.open([File.basename(destination), File.extname(destination)], File.dirname(destination)) do |temp|
|
467
|
+
temp.write content
|
468
|
+
temp.rewind
|
469
|
+
system %(#{merge_tool} "#{temp.path}" "#{destination}")
|
470
|
+
end
|
471
|
+
end
|
472
|
+
|
473
|
+
def merge_tool #:nodoc:
|
474
|
+
@merge_tool ||= ENV["THOR_MERGE"] || git_merge_tool
|
475
|
+
end
|
476
|
+
|
477
|
+
def git_merge_tool #:nodoc:
|
478
|
+
`git config merge.tool`.rstrip rescue ""
|
479
|
+
end
|
435
480
|
end
|
436
481
|
end
|
437
482
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative "basic"
|
2
2
|
|
3
3
|
class Bundler::Thor
|
4
4
|
module Shell
|
@@ -97,7 +97,11 @@ class Bundler::Thor
|
|
97
97
|
protected
|
98
98
|
|
99
99
|
def can_display_colors?
|
100
|
-
stdout.tty?
|
100
|
+
stdout.tty? && !are_colors_disabled?
|
101
|
+
end
|
102
|
+
|
103
|
+
def are_colors_disabled?
|
104
|
+
!ENV['NO_COLOR'].nil?
|
101
105
|
end
|
102
106
|
|
103
107
|
# Overwrite show_diff to show diff with colors if Diff::LCS is
|
@@ -27,7 +27,7 @@ class Bundler::Thor
|
|
27
27
|
end
|
28
28
|
|
29
29
|
# Receives a constant and converts it to a Bundler::Thor namespace. Since Bundler::Thor
|
30
|
-
# commands can be added to a sandbox, this method is also
|
30
|
+
# commands can be added to a sandbox, this method is also responsible for
|
31
31
|
# removing the sandbox namespace.
|
32
32
|
#
|
33
33
|
# This method should not be used in general because it's used to deal with
|
@@ -15,18 +15,20 @@ module Bundler
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
|
-
|
18
|
+
require_relative "vendor/net-http-persistent/lib/net/http/persistent"
|
19
19
|
|
20
20
|
module Bundler
|
21
21
|
class PersistentHTTP < Persistent::Net::HTTP::Persistent
|
22
22
|
def connection_for(uri)
|
23
|
-
|
24
|
-
|
25
|
-
|
23
|
+
super(uri) do |connection|
|
24
|
+
result = yield connection
|
25
|
+
warn_old_tls_version_rubygems_connection(uri, connection)
|
26
|
+
result
|
27
|
+
end
|
26
28
|
end
|
27
29
|
|
28
30
|
def warn_old_tls_version_rubygems_connection(uri, connection)
|
29
|
-
return unless connection.use_ssl?
|
31
|
+
return unless connection.http.use_ssl?
|
30
32
|
return unless (uri.host || "").end_with?("rubygems.org")
|
31
33
|
|
32
34
|
socket = connection.instance_variable_get(:@socket)
|
data/lib/bundler/version.rb
CHANGED
@@ -1,26 +1,7 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
|
3
|
-
# Ruby 1.9.3 and old RubyGems don't play nice with frozen version strings
|
4
|
-
# rubocop:disable MutableConstant
|
5
|
-
|
6
3
|
module Bundler
|
7
|
-
|
8
|
-
# with other versions of bundler and we are unsure how to
|
9
|
-
# handle this better.
|
10
|
-
VERSION = "2.0.0.pre.1" unless defined?(::Bundler::VERSION)
|
11
|
-
|
12
|
-
def self.overwrite_loaded_gem_version
|
13
|
-
begin
|
14
|
-
require "rubygems"
|
15
|
-
rescue LoadError
|
16
|
-
return
|
17
|
-
end
|
18
|
-
return unless bundler_spec = Gem.loaded_specs["bundler"]
|
19
|
-
return if bundler_spec.version == VERSION
|
20
|
-
bundler_spec.version = Bundler::VERSION
|
21
|
-
end
|
22
|
-
private_class_method :overwrite_loaded_gem_version
|
23
|
-
overwrite_loaded_gem_version
|
4
|
+
VERSION = "2.1.0.pre.3".freeze
|
24
5
|
|
25
6
|
def self.bundler_major_version
|
26
7
|
@bundler_major_version ||= VERSION.split(".").first.to_i
|
@@ -5,11 +5,42 @@ module Bundler
|
|
5
5
|
NEq = Struct.new(:version)
|
6
6
|
ReqR = Struct.new(:left, :right)
|
7
7
|
class ReqR
|
8
|
-
Endpoint = Struct.new(:version, :inclusive)
|
8
|
+
Endpoint = Struct.new(:version, :inclusive) do
|
9
|
+
def <=>(other)
|
10
|
+
if version.equal?(INFINITY)
|
11
|
+
return 0 if other.version.equal?(INFINITY)
|
12
|
+
return 1
|
13
|
+
elsif other.version.equal?(INFINITY)
|
14
|
+
return -1
|
15
|
+
end
|
16
|
+
|
17
|
+
comp = version <=> other.version
|
18
|
+
return comp unless comp.zero?
|
19
|
+
|
20
|
+
if inclusive && !other.inclusive
|
21
|
+
1
|
22
|
+
elsif !inclusive && other.inclusive
|
23
|
+
-1
|
24
|
+
else
|
25
|
+
0
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
9
30
|
def to_s
|
10
31
|
"#{left.inclusive ? "[" : "("}#{left.version}, #{right.version}#{right.inclusive ? "]" : ")"}"
|
11
32
|
end
|
12
|
-
INFINITY =
|
33
|
+
INFINITY = begin
|
34
|
+
inf = Object.new
|
35
|
+
def inf.to_s
|
36
|
+
"∞"
|
37
|
+
end
|
38
|
+
def inf.<=>(other)
|
39
|
+
return 0 if other.equal?(self)
|
40
|
+
1
|
41
|
+
end
|
42
|
+
inf.freeze
|
43
|
+
end
|
13
44
|
ZERO = Gem::Version.new("0.a")
|
14
45
|
|
15
46
|
def cover?(v)
|
@@ -32,6 +63,15 @@ module Bundler
|
|
32
63
|
left.version == right.version
|
33
64
|
end
|
34
65
|
|
66
|
+
def <=>(other)
|
67
|
+
return -1 if other.equal?(INFINITY)
|
68
|
+
|
69
|
+
comp = left <=> other.left
|
70
|
+
return comp unless comp.zero?
|
71
|
+
|
72
|
+
right <=> other.right
|
73
|
+
end
|
74
|
+
|
35
75
|
UNIVERSAL = ReqR.new(ReqR::Endpoint.new(Gem::Version.new("0.a"), true), ReqR::Endpoint.new(ReqR::INFINITY, false)).freeze
|
36
76
|
end
|
37
77
|
|
@@ -57,7 +97,7 @@ module Bundler
|
|
57
97
|
end.uniq
|
58
98
|
ranges, neqs = ranges.partition {|r| !r.is_a?(NEq) }
|
59
99
|
|
60
|
-
[ranges.
|
100
|
+
[ranges.sort, neqs.map(&:version)]
|
61
101
|
end
|
62
102
|
|
63
103
|
def self.empty?(ranges, neqs)
|
@@ -66,8 +106,14 @@ module Bundler
|
|
66
106
|
next false if curr_range.single? && neqs.include?(curr_range.left.version)
|
67
107
|
next curr_range if last_range.right.version == ReqR::INFINITY
|
68
108
|
case last_range.right.version <=> curr_range.left.version
|
69
|
-
|
70
|
-
when
|
109
|
+
# higher
|
110
|
+
when 1 then next ReqR.new(curr_range.left, last_range.right)
|
111
|
+
# equal
|
112
|
+
when 0
|
113
|
+
if last_range.right.inclusive && curr_range.left.inclusive && !neqs.include?(curr_range.left.version)
|
114
|
+
ReqR.new(curr_range.left, [curr_range.right, last_range.right].max)
|
115
|
+
end
|
116
|
+
# lower
|
71
117
|
when -1 then next false
|
72
118
|
end
|
73
119
|
end
|
data/lib/bundler/vlad.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
Bundler::SharedHelpers.major_deprecation
|
3
|
+
require_relative "shared_helpers"
|
4
|
+
Bundler::SharedHelpers.major_deprecation 2,
|
5
5
|
"The Bundler task for Vlad"
|
6
6
|
|
7
7
|
# Vlad task for Bundler.
|
8
8
|
#
|
9
9
|
# Add "require 'bundler/vlad'" in your Vlad deploy.rb, and
|
10
10
|
# include the vlad:bundle:install task in your vlad:deploy task.
|
11
|
-
|
11
|
+
require_relative "deployment"
|
12
12
|
|
13
13
|
include Rake::DSL if defined? Rake::DSL
|
14
14
|
|
data/lib/bundler/worker.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require "thread"
|
4
|
-
|
5
3
|
module Bundler
|
6
4
|
class Worker
|
7
5
|
POISON = Object.new
|
@@ -62,7 +60,7 @@ module Bundler
|
|
62
60
|
|
63
61
|
def apply_func(obj, i)
|
64
62
|
@func.call(obj, i)
|
65
|
-
rescue Exception => e
|
63
|
+
rescue Exception => e # rubocop:disable Lint/RescueException
|
66
64
|
WrappedException.new(e)
|
67
65
|
end
|
68
66
|
|
@@ -32,7 +32,7 @@ module Bundler
|
|
32
32
|
(.*) # value
|
33
33
|
\1 # matching closing quote
|
34
34
|
$
|
35
|
-
/xo
|
35
|
+
/xo.freeze
|
36
36
|
|
37
37
|
HASH_REGEX = /
|
38
38
|
^
|
@@ -40,12 +40,11 @@ module Bundler
|
|
40
40
|
(.+) # key
|
41
41
|
(?::(?=(?:\s|$))) # : (without the lookahead the #key includes this when : is present in value)
|
42
42
|
[ ]?
|
43
|
-
(?: !\s)? # optional exclamation mark found with ruby 1.9.3
|
44
43
|
(['"]?) # optional opening quote
|
45
44
|
(.*) # value
|
46
45
|
\3 # matching closing quote
|
47
46
|
$
|
48
|
-
/xo
|
47
|
+
/xo.freeze
|
49
48
|
|
50
49
|
def load(str)
|
51
50
|
res = {}
|