rubygems-update 3.5.22 → 3.6.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +91 -0
- data/Manifest.txt +23 -16
- data/README.md +14 -9
- data/bundler/CHANGELOG.md +83 -0
- data/bundler/bundler.gemspec +2 -2
- data/bundler/lib/bundler/build_metadata.rb +2 -2
- data/bundler/lib/bundler/cli/add.rb +2 -0
- data/bundler/lib/bundler/cli/check.rb +2 -2
- data/bundler/lib/bundler/cli/console.rb +0 -4
- data/bundler/lib/bundler/cli/doctor.rb +4 -4
- data/bundler/lib/bundler/cli/exec.rb +1 -0
- data/bundler/lib/bundler/cli/gem.rb +1 -1
- data/bundler/lib/bundler/cli/info.rb +2 -2
- data/bundler/lib/bundler/cli/inject.rb +1 -1
- data/bundler/lib/bundler/cli/install.rb +4 -0
- data/bundler/lib/bundler/cli/lock.rb +20 -1
- data/bundler/lib/bundler/cli/pristine.rb +1 -1
- data/bundler/lib/bundler/cli/show.rb +2 -2
- data/bundler/lib/bundler/cli.rb +23 -53
- data/bundler/lib/bundler/compact_index_client/cache_file.rb +0 -5
- data/bundler/lib/bundler/compact_index_client/updater.rb +0 -11
- data/bundler/lib/bundler/definition.rb +143 -76
- data/bundler/lib/bundler/dependency.rb +1 -1
- data/bundler/lib/bundler/dsl.rb +33 -28
- data/bundler/lib/bundler/endpoint_specification.rb +10 -1
- data/bundler/lib/bundler/errors.rb +10 -0
- data/bundler/lib/bundler/feature_flag.rb +1 -0
- data/bundler/lib/bundler/fetcher/compact_index.rb +1 -1
- data/bundler/lib/bundler/fetcher.rb +10 -3
- data/bundler/lib/bundler/gem_helpers.rb +21 -5
- data/bundler/lib/bundler/injector.rb +2 -2
- data/bundler/lib/bundler/inline.rb +12 -8
- data/bundler/lib/bundler/installer/standalone.rb +2 -2
- data/bundler/lib/bundler/installer.rb +4 -38
- data/bundler/lib/bundler/lazy_specification.rb +74 -26
- data/bundler/lib/bundler/lockfile_generator.rb +1 -1
- data/bundler/lib/bundler/lockfile_parser.rb +9 -1
- data/bundler/lib/bundler/man/bundle-add.1 +17 -11
- data/bundler/lib/bundler/man/bundle-add.1.ronn +16 -10
- data/bundler/lib/bundler/man/bundle-binstubs.1 +7 -4
- data/bundler/lib/bundler/man/bundle-binstubs.1.ronn +6 -3
- data/bundler/lib/bundler/man/bundle-cache.1 +30 -2
- data/bundler/lib/bundler/man/bundle-cache.1.ronn +31 -2
- data/bundler/lib/bundler/man/bundle-check.1 +3 -3
- data/bundler/lib/bundler/man/bundle-check.1.ronn +4 -2
- data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
- data/bundler/lib/bundler/man/bundle-config.1 +3 -5
- data/bundler/lib/bundler/man/bundle-config.1.ronn +2 -7
- data/bundler/lib/bundler/man/bundle-console.1 +2 -4
- data/bundler/lib/bundler/man/bundle-console.1.ronn +2 -7
- data/bundler/lib/bundler/man/bundle-doctor.1 +2 -2
- data/bundler/lib/bundler/man/bundle-doctor.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-env.1 +9 -0
- data/bundler/lib/bundler/man/bundle-env.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-exec.1 +5 -2
- data/bundler/lib/bundler/man/bundle-exec.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-fund.1 +22 -0
- data/bundler/lib/bundler/man/bundle-fund.1.ronn +25 -0
- data/bundler/lib/bundler/man/bundle-gem.1 +17 -5
- data/bundler/lib/bundler/man/bundle-gem.1.ronn +27 -6
- data/bundler/lib/bundler/man/bundle-help.1 +1 -1
- data/bundler/lib/bundler/man/bundle-info.1 +5 -2
- data/bundler/lib/bundler/man/bundle-info.1.ronn +6 -2
- data/bundler/lib/bundler/man/bundle-init.1 +3 -3
- data/bundler/lib/bundler/man/bundle-init.1.ronn +3 -2
- data/bundler/lib/bundler/man/bundle-inject.1 +10 -2
- data/bundler/lib/bundler/man/bundle-inject.1.ronn +9 -1
- data/bundler/lib/bundler/man/bundle-install.1 +15 -12
- data/bundler/lib/bundler/man/bundle-install.1.ronn +22 -18
- data/bundler/lib/bundler/man/bundle-issue.1 +45 -0
- data/bundler/lib/bundler/man/bundle-issue.1.ronn +37 -0
- data/bundler/lib/bundler/man/bundle-licenses.1 +9 -0
- data/bundler/lib/bundler/man/bundle-licenses.1.ronn +10 -0
- data/bundler/lib/bundler/man/bundle-list.1 +1 -1
- data/bundler/lib/bundler/man/bundle-list.1.ronn +4 -1
- data/bundler/lib/bundler/man/bundle-lock.1 +21 -6
- data/bundler/lib/bundler/man/bundle-lock.1.ronn +25 -4
- data/bundler/lib/bundler/man/bundle-open.1 +2 -2
- data/bundler/lib/bundler/man/bundle-open.1.ronn +2 -1
- data/bundler/lib/bundler/man/bundle-outdated.1 +8 -5
- data/bundler/lib/bundler/man/bundle-outdated.1.ronn +8 -4
- data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
- data/bundler/lib/bundler/man/bundle-plugin.1 +1 -1
- data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
- data/bundler/lib/bundler/man/bundle-pristine.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
- data/bundler/lib/bundler/man/bundle-remove.1.ronn +1 -1
- data/bundler/lib/bundler/man/bundle-show.1 +5 -2
- data/bundler/lib/bundler/man/bundle-show.1.ronn +4 -0
- data/bundler/lib/bundler/man/bundle-update.1 +13 -7
- data/bundler/lib/bundler/man/bundle-update.1.ronn +14 -6
- data/bundler/lib/bundler/man/bundle-version.1 +1 -1
- data/bundler/lib/bundler/man/bundle-viz.1 +4 -4
- data/bundler/lib/bundler/man/bundle-viz.1.ronn +7 -3
- data/bundler/lib/bundler/man/bundle.1 +1 -1
- data/bundler/lib/bundler/man/gemfile.5 +1 -1
- data/bundler/lib/bundler/man/index.txt +4 -0
- data/bundler/lib/bundler/materialization.rb +59 -0
- data/bundler/lib/bundler/plugin/events.rb +24 -0
- data/bundler/lib/bundler/plugin/installer.rb +1 -1
- data/bundler/lib/bundler/plugin.rb +20 -1
- data/bundler/lib/bundler/process_lock.rb +10 -14
- data/bundler/lib/bundler/remote_specification.rb +6 -1
- data/bundler/lib/bundler/resolver/base.rb +6 -6
- data/bundler/lib/bundler/resolver/candidate.rb +2 -2
- data/bundler/lib/bundler/resolver/spec_group.rb +4 -3
- data/bundler/lib/bundler/resolver.rb +5 -5
- data/bundler/lib/bundler/rubygems_ext.rb +30 -27
- data/bundler/lib/bundler/rubygems_gem_installer.rb +3 -2
- data/bundler/lib/bundler/rubygems_integration.rb +23 -40
- data/bundler/lib/bundler/runtime.rb +27 -7
- data/bundler/lib/bundler/self_manager.rb +2 -3
- data/bundler/lib/bundler/settings.rb +6 -1
- data/bundler/lib/bundler/shared_helpers.rb +29 -17
- data/bundler/lib/bundler/source/git/git_proxy.rb +0 -6
- data/bundler/lib/bundler/source/git.rb +56 -31
- data/bundler/lib/bundler/source/metadata.rb +2 -3
- data/bundler/lib/bundler/source/path.rb +2 -2
- data/bundler/lib/bundler/source_list.rb +1 -1
- data/bundler/lib/bundler/spec_set.rb +81 -56
- data/bundler/lib/bundler/stub_specification.rb +8 -0
- data/bundler/lib/bundler/templates/newgem/Gemfile.tt +0 -3
- data/bundler/lib/bundler/templates/newgem/README.md.tt +1 -1
- data/bundler/lib/bundler/templates/newgem/github/workflows/main.yml.tt +15 -15
- data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +4 -4
- data/bundler/lib/bundler/uri_credentials_filter.rb +1 -1
- data/bundler/lib/bundler/vendor/fileutils/COPYING +56 -0
- data/bundler/lib/bundler/vendor/fileutils/lib/fileutils.rb +15 -13
- data/bundler/lib/bundler/vendor/securerandom/COPYING +56 -0
- data/bundler/lib/bundler/vendor/securerandom/lib/securerandom.rb +5 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +3 -5
- data/bundler/lib/bundler/vendor/thor/lib/thor/group.rb +11 -0
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/argument.rb +1 -4
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/option.rb +2 -2
- data/bundler/lib/bundler/vendor/thor/lib/thor/parser/options.rb +2 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +9 -9
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/shell/table_printer.rb +5 -21
- data/bundler/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/bundler/lib/bundler/vendor/thor/lib/thor.rb +11 -0
- data/bundler/lib/bundler/vendor/uri/COPYING +56 -0
- data/bundler/lib/bundler/vendor/uri/lib/uri/common.rb +37 -16
- data/bundler/lib/bundler/vendor/uri/lib/uri/file.rb +3 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/ftp.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri/generic.rb +16 -26
- data/bundler/lib/bundler/vendor/uri/lib/uri/http.rb +2 -2
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb +10 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
- data/bundler/lib/bundler/vendor/uri/lib/uri/version.rb +1 -1
- data/bundler/lib/bundler/vendor/uri/lib/uri.rb +9 -9
- data/bundler/lib/bundler/vendored_securerandom.rb +0 -2
- data/bundler/lib/bundler/version.rb +1 -1
- data/bundler/lib/bundler.rb +38 -14
- data/{CONTRIBUTING.md → doc/rubygems/CONTRIBUTING.md} +9 -9
- data/{POLICIES.md → doc/rubygems/POLICIES.md} +11 -11
- data/lib/rubygems/basic_specification.rb +5 -4
- data/lib/rubygems/commands/cleanup_command.rb +2 -2
- data/lib/rubygems/commands/contents_command.rb +4 -4
- data/lib/rubygems/commands/exec_command.rb +3 -0
- data/lib/rubygems/commands/pristine_command.rb +2 -2
- data/lib/rubygems/commands/push_command.rb +29 -5
- data/lib/rubygems/commands/rdoc_command.rb +2 -2
- data/lib/rubygems/commands/rebuild_command.rb +0 -2
- data/lib/rubygems/commands/setup_command.rb +7 -16
- data/lib/rubygems/commands/unpack_command.rb +0 -6
- data/lib/rubygems/commands/update_command.rb +2 -8
- data/lib/rubygems/config_file.rb +12 -0
- data/lib/rubygems/core_ext/kernel_warn.rb +2 -6
- data/lib/rubygems/defaults.rb +1 -1
- data/lib/rubygems/exceptions.rb +0 -6
- data/lib/rubygems/ext/builder.rb +6 -4
- data/lib/rubygems/ext/cargo_builder.rb +7 -4
- data/lib/rubygems/ext/cmake_builder.rb +7 -2
- data/lib/rubygems/ext/configure_builder.rb +7 -2
- data/lib/rubygems/ext/ext_conf_builder.rb +9 -5
- data/lib/rubygems/ext/rake_builder.rb +6 -1
- data/lib/rubygems/gem_runner.rb +9 -0
- data/lib/rubygems/gemcutter_utilities.rb +8 -2
- data/lib/rubygems/install_update_options.rb +5 -0
- data/lib/rubygems/installer.rb +8 -9
- data/lib/rubygems/package/tar_header.rb +11 -0
- data/lib/rubygems/package/tar_reader/entry.rb +1 -5
- data/lib/rubygems/platform.rb +4 -3
- data/lib/rubygems/psych_tree.rb +4 -0
- data/lib/rubygems/request_set/gem_dependency_api.rb +1 -1
- data/lib/rubygems/requirement.rb +0 -4
- data/lib/rubygems/resolver/composed_set.rb +3 -3
- data/lib/rubygems/resolver/git_set.rb +0 -1
- data/lib/rubygems/resolver/index_set.rb +2 -2
- data/lib/rubygems/resolver.rb +3 -3
- data/lib/rubygems/source/git.rb +13 -10
- data/lib/rubygems/spec_fetcher.rb +46 -7
- data/lib/rubygems/specification.rb +38 -32
- data/lib/rubygems/target_rbconfig.rb +50 -0
- data/lib/rubygems/uri.rb +1 -1
- data/lib/rubygems/util/licenses.rb +10 -1
- data/lib/rubygems/vendor/net-http/COPYING +56 -0
- data/lib/rubygems/vendor/net-http/lib/net/http/header.rb +1 -1
- data/lib/rubygems/vendor/net-http/lib/net/http/requests.rb +5 -0
- data/lib/rubygems/vendor/net-http/lib/net/http.rb +120 -36
- data/lib/rubygems/vendor/optparse/lib/optparse/ac.rb +16 -0
- data/lib/rubygems/vendor/optparse/lib/optparse/kwargs.rb +8 -3
- data/lib/rubygems/vendor/optparse/lib/optparse/version.rb +9 -0
- data/lib/rubygems/vendor/optparse/lib/optparse.rb +147 -51
- data/lib/rubygems/vendor/resolv/COPYING +56 -0
- data/lib/rubygems/vendor/resolv/lib/resolv.rb +50 -37
- data/lib/rubygems/vendor/securerandom/COPYING +56 -0
- data/lib/rubygems/vendor/securerandom/lib/securerandom.rb +5 -5
- data/lib/rubygems/vendor/timeout/COPYING +56 -0
- data/lib/rubygems/vendor/timeout/lib/timeout.rb +5 -8
- data/lib/rubygems/vendor/uri/COPYING +56 -0
- data/lib/rubygems/vendor/uri/lib/uri/common.rb +37 -16
- data/lib/rubygems/vendor/uri/lib/uri/file.rb +3 -3
- data/lib/rubygems/vendor/uri/lib/uri/ftp.rb +1 -1
- data/lib/rubygems/vendor/uri/lib/uri/generic.rb +16 -26
- data/lib/rubygems/vendor/uri/lib/uri/http.rb +2 -2
- data/lib/rubygems/vendor/uri/lib/uri/rfc2396_parser.rb +10 -3
- data/lib/rubygems/vendor/uri/lib/uri/rfc3986_parser.rb +26 -3
- data/lib/rubygems/vendor/uri/lib/uri/version.rb +1 -1
- data/lib/rubygems/vendor/uri/lib/uri.rb +9 -9
- data/lib/rubygems/vendored_securerandom.rb +0 -1
- data/lib/rubygems/version.rb +0 -4
- data/lib/rubygems.rb +30 -20
- data/rubygems-update.gemspec +5 -5
- data/setup.rb +1 -1
- metadata +36 -27
- data/bundler/lib/bundler/vendor/fileutils/LICENSE.txt +0 -22
- data/bundler/lib/bundler/vendor/securerandom/LICENSE.txt +0 -22
- data/bundler/lib/bundler/vendor/securerandom/lib/random/formatter.rb +0 -373
- data/bundler/lib/bundler/vendor/uri/LICENSE.txt +0 -22
- data/lib/rubygems/vendor/net-http/LICENSE.txt +0 -22
- data/lib/rubygems/vendor/net-http/lib/net/http/backward.rb +0 -40
- data/lib/rubygems/vendor/resolv/LICENSE.txt +0 -22
- data/lib/rubygems/vendor/securerandom/LICENSE.txt +0 -22
- data/lib/rubygems/vendor/securerandom/lib/random/formatter.rb +0 -373
- data/lib/rubygems/vendor/timeout/LICENSE.txt +0 -22
- data/lib/rubygems/vendor/uri/LICENSE.txt +0 -22
- /data/{MAINTAINERS.txt → doc/MAINTAINERS.txt} +0 -0
- /data/{bundler → doc/bundler}/UPGRADING.md +0 -0
- /data/{UPGRADING.md → doc/rubygems/UPGRADING.md} +0 -0
@@ -82,7 +82,7 @@ module Bundler::URI
|
|
82
82
|
if args.kind_of?(Array)
|
83
83
|
return self.build(args.collect{|x|
|
84
84
|
if x.is_a?(String)
|
85
|
-
|
85
|
+
Bundler::URI::RFC2396_PARSER.escape(x)
|
86
86
|
else
|
87
87
|
x
|
88
88
|
end
|
@@ -91,7 +91,7 @@ module Bundler::URI
|
|
91
91
|
tmp = {}
|
92
92
|
args.each do |key, value|
|
93
93
|
tmp[key] = if value
|
94
|
-
|
94
|
+
Bundler::URI::RFC2396_PARSER.escape(value)
|
95
95
|
else
|
96
96
|
value
|
97
97
|
end
|
@@ -393,7 +393,7 @@ module Bundler::URI
|
|
393
393
|
def check_user(v)
|
394
394
|
if @opaque
|
395
395
|
raise InvalidURIError,
|
396
|
-
"
|
396
|
+
"cannot set user with opaque"
|
397
397
|
end
|
398
398
|
|
399
399
|
return v unless v
|
@@ -417,7 +417,7 @@ module Bundler::URI
|
|
417
417
|
def check_password(v, user = @user)
|
418
418
|
if @opaque
|
419
419
|
raise InvalidURIError,
|
420
|
-
"
|
420
|
+
"cannot set password with opaque"
|
421
421
|
end
|
422
422
|
return v unless v
|
423
423
|
|
@@ -596,7 +596,7 @@ module Bundler::URI
|
|
596
596
|
|
597
597
|
if @opaque
|
598
598
|
raise InvalidURIError,
|
599
|
-
"
|
599
|
+
"cannot set host with registry or opaque"
|
600
600
|
elsif parser.regexp[:HOST] !~ v
|
601
601
|
raise InvalidComponentError,
|
602
602
|
"bad component(expected host component): #{v}"
|
@@ -685,7 +685,7 @@ module Bundler::URI
|
|
685
685
|
|
686
686
|
if @opaque
|
687
687
|
raise InvalidURIError,
|
688
|
-
"
|
688
|
+
"cannot set port with registry or opaque"
|
689
689
|
elsif !v.kind_of?(Integer) && parser.regexp[:PORT] !~ v
|
690
690
|
raise InvalidComponentError,
|
691
691
|
"bad component(expected port component): #{v.inspect}"
|
@@ -733,17 +733,17 @@ module Bundler::URI
|
|
733
733
|
end
|
734
734
|
|
735
735
|
def check_registry(v) # :nodoc:
|
736
|
-
raise InvalidURIError, "
|
736
|
+
raise InvalidURIError, "cannot set registry"
|
737
737
|
end
|
738
738
|
private :check_registry
|
739
739
|
|
740
740
|
def set_registry(v) #:nodoc:
|
741
|
-
raise InvalidURIError, "
|
741
|
+
raise InvalidURIError, "cannot set registry"
|
742
742
|
end
|
743
743
|
protected :set_registry
|
744
744
|
|
745
745
|
def registry=(v)
|
746
|
-
raise InvalidURIError, "
|
746
|
+
raise InvalidURIError, "cannot set registry"
|
747
747
|
end
|
748
748
|
|
749
749
|
#
|
@@ -866,7 +866,7 @@ module Bundler::URI
|
|
866
866
|
# hier_part = ( net_path | abs_path ) [ "?" query ]
|
867
867
|
if @host || @port || @user || @path # userinfo = @user + ':' + @password
|
868
868
|
raise InvalidURIError,
|
869
|
-
"
|
869
|
+
"cannot set opaque with host, port, userinfo or path"
|
870
870
|
elsif v && parser.regexp[:OPAQUE] !~ v
|
871
871
|
raise InvalidComponentError,
|
872
872
|
"bad component(expected opaque component): #{v}"
|
@@ -945,7 +945,7 @@ module Bundler::URI
|
|
945
945
|
# == Description
|
946
946
|
#
|
947
947
|
# Bundler::URI has components listed in order of decreasing significance from left to right,
|
948
|
-
# see RFC3986 https://
|
948
|
+
# see RFC3986 https://www.rfc-editor.org/rfc/rfc3986 1.2.3.
|
949
949
|
#
|
950
950
|
# == Usage
|
951
951
|
#
|
@@ -1235,7 +1235,7 @@ module Bundler::URI
|
|
1235
1235
|
return rel, rel
|
1236
1236
|
end
|
1237
1237
|
|
1238
|
-
# you can modify `rel', but
|
1238
|
+
# you can modify `rel', but cannot `oth'.
|
1239
1239
|
return oth, rel
|
1240
1240
|
end
|
1241
1241
|
private :route_from0
|
@@ -1260,7 +1260,7 @@ module Bundler::URI
|
|
1260
1260
|
# #=> #<Bundler::URI::Generic /main.rbx?page=1>
|
1261
1261
|
#
|
1262
1262
|
def route_from(oth)
|
1263
|
-
# you can modify `rel', but
|
1263
|
+
# you can modify `rel', but cannot `oth'.
|
1264
1264
|
begin
|
1265
1265
|
oth, rel = route_from0(oth)
|
1266
1266
|
rescue
|
@@ -1364,6 +1364,9 @@ module Bundler::URI
|
|
1364
1364
|
str << ':'
|
1365
1365
|
str << @port.to_s
|
1366
1366
|
end
|
1367
|
+
if (@host || @port) && [email protected]? && [email protected]_with?('/')
|
1368
|
+
str << '/'
|
1369
|
+
end
|
1367
1370
|
str << @path
|
1368
1371
|
if @query
|
1369
1372
|
str << '?'
|
@@ -1399,19 +1402,6 @@ module Bundler::URI
|
|
1399
1402
|
self.component_ary.eql?(oth.component_ary)
|
1400
1403
|
end
|
1401
1404
|
|
1402
|
-
=begin
|
1403
|
-
|
1404
|
-
--- Bundler::URI::Generic#===(oth)
|
1405
|
-
|
1406
|
-
=end
|
1407
|
-
# def ===(oth)
|
1408
|
-
# raise NotImplementedError
|
1409
|
-
# end
|
1410
|
-
|
1411
|
-
=begin
|
1412
|
-
=end
|
1413
|
-
|
1414
|
-
|
1415
1405
|
# Returns an Array of the components defined from the COMPONENT Array.
|
1416
1406
|
def component_ary
|
1417
1407
|
component.collect do |x|
|
@@ -85,7 +85,7 @@ module Bundler::URI
|
|
85
85
|
# == Description
|
86
86
|
#
|
87
87
|
# Returns the authority for an HTTP uri, as defined in
|
88
|
-
# https://
|
88
|
+
# https://www.rfc-editor.org/rfc/rfc3986#section-3.2.
|
89
89
|
#
|
90
90
|
#
|
91
91
|
# Example:
|
@@ -106,7 +106,7 @@ module Bundler::URI
|
|
106
106
|
# == Description
|
107
107
|
#
|
108
108
|
# Returns the origin for an HTTP uri, as defined in
|
109
|
-
# https://
|
109
|
+
# https://www.rfc-editor.org/rfc/rfc6454.
|
110
110
|
#
|
111
111
|
#
|
112
112
|
# Example:
|
@@ -140,11 +140,11 @@ module Bundler::URI
|
|
140
140
|
|
141
141
|
if !scheme
|
142
142
|
raise InvalidURIError,
|
143
|
-
"bad Bundler::URI(absolute but no scheme): #{uri}"
|
143
|
+
"bad Bundler::URI (absolute but no scheme): #{uri}"
|
144
144
|
end
|
145
145
|
if !opaque && (!path && (!host && !registry))
|
146
146
|
raise InvalidURIError,
|
147
|
-
"bad Bundler::URI(absolute but no path): #{uri}"
|
147
|
+
"bad Bundler::URI (absolute but no path): #{uri}"
|
148
148
|
end
|
149
149
|
|
150
150
|
when @regexp[:REL_URI]
|
@@ -173,7 +173,7 @@ module Bundler::URI
|
|
173
173
|
# server = [ [ userinfo "@" ] hostport ]
|
174
174
|
|
175
175
|
else
|
176
|
-
raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri}"
|
176
|
+
raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri}"
|
177
177
|
end
|
178
178
|
|
179
179
|
path = '' if !path && !opaque # (see RFC2396 Section 5.2)
|
@@ -536,4 +536,11 @@ module Bundler::URI
|
|
536
536
|
end
|
537
537
|
|
538
538
|
end # class Parser
|
539
|
+
|
540
|
+
# Backward compatibility for Bundler::URI::REGEXP::PATTERN::*
|
541
|
+
RFC2396_Parser.new.pattern.each_pair do |sym, str|
|
542
|
+
unless RFC2396_REGEXP::PATTERN.const_defined?(sym, false)
|
543
|
+
RFC2396_REGEXP::PATTERN.const_set(sym, str)
|
544
|
+
end
|
545
|
+
end
|
539
546
|
end # module Bundler::URI
|
@@ -78,7 +78,7 @@ module Bundler::URI
|
|
78
78
|
begin
|
79
79
|
uri = uri.to_str
|
80
80
|
rescue NoMethodError
|
81
|
-
raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"
|
81
|
+
raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri.inspect}"
|
82
82
|
end
|
83
83
|
uri.ascii_only? or
|
84
84
|
raise InvalidURIError, "Bundler::URI must be ascii only #{uri.dump}"
|
@@ -127,7 +127,7 @@ module Bundler::URI
|
|
127
127
|
m["fragment"]
|
128
128
|
]
|
129
129
|
else
|
130
|
-
raise InvalidURIError, "bad Bundler::URI(is not Bundler::URI?): #{uri.inspect}"
|
130
|
+
raise InvalidURIError, "bad Bundler::URI (is not Bundler::URI?): #{uri.inspect}"
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -135,12 +135,35 @@ module Bundler::URI
|
|
135
135
|
Bundler::URI.for(*self.split(uri), self)
|
136
136
|
end
|
137
137
|
|
138
|
-
|
139
138
|
def join(*uris) # :nodoc:
|
140
139
|
uris[0] = convert_to_uri(uris[0])
|
141
140
|
uris.inject :merge
|
142
141
|
end
|
143
142
|
|
143
|
+
# Compatibility for RFC2396 parser
|
144
|
+
def extract(str, schemes = nil, &block) # :nodoc:
|
145
|
+
warn "Bundler::URI::RFC3986_PARSER.extract is obsolete. Use Bundler::URI::RFC2396_PARSER.extract explicitly.", uplevel: 1 if $VERBOSE
|
146
|
+
RFC2396_PARSER.extract(str, schemes, &block)
|
147
|
+
end
|
148
|
+
|
149
|
+
# Compatibility for RFC2396 parser
|
150
|
+
def make_regexp(schemes = nil) # :nodoc:
|
151
|
+
warn "Bundler::URI::RFC3986_PARSER.make_regexp is obsolete. Use Bundler::URI::RFC2396_PARSER.make_regexp explicitly.", uplevel: 1 if $VERBOSE
|
152
|
+
RFC2396_PARSER.make_regexp(schemes)
|
153
|
+
end
|
154
|
+
|
155
|
+
# Compatibility for RFC2396 parser
|
156
|
+
def escape(str, unsafe = nil) # :nodoc:
|
157
|
+
warn "Bundler::URI::RFC3986_PARSER.escape is obsolete. Use Bundler::URI::RFC2396_PARSER.escape explicitly.", uplevel: 1 if $VERBOSE
|
158
|
+
unsafe ? RFC2396_PARSER.escape(str, unsafe) : RFC2396_PARSER.escape(str)
|
159
|
+
end
|
160
|
+
|
161
|
+
# Compatibility for RFC2396 parser
|
162
|
+
def unescape(str, escaped = nil) # :nodoc:
|
163
|
+
warn "Bundler::URI::RFC3986_PARSER.unescape is obsolete. Use Bundler::URI::RFC2396_PARSER.unescape explicitly.", uplevel: 1 if $VERBOSE
|
164
|
+
escaped ? RFC2396_PARSER.unescape(str, escaped) : RFC2396_PARSER.unescape(str)
|
165
|
+
end
|
166
|
+
|
144
167
|
@@to_s = Kernel.instance_method(:to_s)
|
145
168
|
if @@to_s.respond_to?(:bind_call)
|
146
169
|
def inspect
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: false
|
2
2
|
# Bundler::URI is a module providing classes to handle Uniform Resource Identifiers
|
3
|
-
# (RFC2396[
|
3
|
+
# (RFC2396[https://www.rfc-editor.org/rfc/rfc2396]).
|
4
4
|
#
|
5
5
|
# == Features
|
6
6
|
#
|
@@ -47,14 +47,14 @@
|
|
47
47
|
# A good place to view an RFC spec is http://www.ietf.org/rfc.html.
|
48
48
|
#
|
49
49
|
# Here is a list of all related RFC's:
|
50
|
-
# - RFC822[
|
51
|
-
# - RFC1738[
|
52
|
-
# - RFC2255[
|
53
|
-
# - RFC2368[
|
54
|
-
# - RFC2373[
|
55
|
-
# - RFC2396[
|
56
|
-
# - RFC2732[
|
57
|
-
# - RFC3986[
|
50
|
+
# - RFC822[https://www.rfc-editor.org/rfc/rfc822]
|
51
|
+
# - RFC1738[https://www.rfc-editor.org/rfc/rfc1738]
|
52
|
+
# - RFC2255[https://www.rfc-editor.org/rfc/rfc2255]
|
53
|
+
# - RFC2368[https://www.rfc-editor.org/rfc/rfc2368]
|
54
|
+
# - RFC2373[https://www.rfc-editor.org/rfc/rfc2373]
|
55
|
+
# - RFC2396[https://www.rfc-editor.org/rfc/rfc2396]
|
56
|
+
# - RFC2732[https://www.rfc-editor.org/rfc/rfc2732]
|
57
|
+
# - RFC3986[https://www.rfc-editor.org/rfc/rfc3986]
|
58
58
|
#
|
59
59
|
# == Class tree
|
60
60
|
#
|
data/bundler/lib/bundler.rb
CHANGED
@@ -10,7 +10,6 @@ require_relative "bundler/plugin"
|
|
10
10
|
require_relative "bundler/rubygems_ext"
|
11
11
|
require_relative "bundler/rubygems_integration"
|
12
12
|
require_relative "bundler/version"
|
13
|
-
require_relative "bundler/constants"
|
14
13
|
require_relative "bundler/current_ruby"
|
15
14
|
require_relative "bundler/build_metadata"
|
16
15
|
|
@@ -52,6 +51,7 @@ module Bundler
|
|
52
51
|
autoload :Env, File.expand_path("bundler/env", __dir__)
|
53
52
|
autoload :Fetcher, File.expand_path("bundler/fetcher", __dir__)
|
54
53
|
autoload :FeatureFlag, File.expand_path("bundler/feature_flag", __dir__)
|
54
|
+
autoload :FREEBSD, File.expand_path("bundler/constants", __dir__)
|
55
55
|
autoload :GemHelper, File.expand_path("bundler/gem_helper", __dir__)
|
56
56
|
autoload :GemHelpers, File.expand_path("bundler/gem_helpers", __dir__)
|
57
57
|
autoload :GemVersionPromoter, File.expand_path("bundler/gem_version_promoter", __dir__)
|
@@ -62,6 +62,8 @@ module Bundler
|
|
62
62
|
autoload :LazySpecification, File.expand_path("bundler/lazy_specification", __dir__)
|
63
63
|
autoload :LockfileParser, File.expand_path("bundler/lockfile_parser", __dir__)
|
64
64
|
autoload :MatchRemoteMetadata, File.expand_path("bundler/match_remote_metadata", __dir__)
|
65
|
+
autoload :Materialization, File.expand_path("bundler/materialization", __dir__)
|
66
|
+
autoload :NULL, File.expand_path("bundler/constants", __dir__)
|
65
67
|
autoload :ProcessLock, File.expand_path("bundler/process_lock", __dir__)
|
66
68
|
autoload :RemoteSpecification, File.expand_path("bundler/remote_specification", __dir__)
|
67
69
|
autoload :Resolver, File.expand_path("bundler/resolver", __dir__)
|
@@ -80,6 +82,7 @@ module Bundler
|
|
80
82
|
autoload :UI, File.expand_path("bundler/ui", __dir__)
|
81
83
|
autoload :URICredentialsFilter, File.expand_path("bundler/uri_credentials_filter", __dir__)
|
82
84
|
autoload :URINormalizer, File.expand_path("bundler/uri_normalizer", __dir__)
|
85
|
+
autoload :WINDOWS, File.expand_path("bundler/constants", __dir__)
|
83
86
|
autoload :SafeMarshal, File.expand_path("bundler/safe_marshal", __dir__)
|
84
87
|
|
85
88
|
class << self
|
@@ -209,6 +212,7 @@ module Bundler
|
|
209
212
|
# Bundler.require(:test) # requires second_gem
|
210
213
|
#
|
211
214
|
def require(*groups)
|
215
|
+
load_plugins
|
212
216
|
setup(*groups).require(*groups)
|
213
217
|
end
|
214
218
|
|
@@ -252,12 +256,6 @@ module Bundler
|
|
252
256
|
end
|
253
257
|
end
|
254
258
|
|
255
|
-
def most_specific_locked_platform?(platform)
|
256
|
-
return false unless defined?(@definition) && @definition
|
257
|
-
|
258
|
-
definition.most_specific_locked_platform == platform
|
259
|
-
end
|
260
|
-
|
261
259
|
def ruby_scope
|
262
260
|
"#{Bundler.rubygems.ruby_engine}/#{RbConfig::CONFIG["ruby_version"]}"
|
263
261
|
end
|
@@ -492,24 +490,33 @@ module Bundler
|
|
492
490
|
end
|
493
491
|
|
494
492
|
def mkdir_p(path)
|
495
|
-
SharedHelpers.filesystem_access(path, :
|
493
|
+
SharedHelpers.filesystem_access(path, :create) do |p|
|
496
494
|
FileUtils.mkdir_p(p)
|
497
495
|
end
|
498
496
|
end
|
499
497
|
|
500
498
|
def which(executable)
|
501
|
-
|
502
|
-
|
503
|
-
|
499
|
+
executable_path = find_executable(executable)
|
500
|
+
return executable_path if executable_path
|
501
|
+
|
502
|
+
if (paths = ENV["PATH"])
|
504
503
|
quote = '"'
|
505
504
|
paths.split(File::PATH_SEPARATOR).find do |path|
|
506
505
|
path = path[1..-2] if path.start_with?(quote) && path.end_with?(quote)
|
507
|
-
executable_path = File.expand_path(executable, path)
|
508
|
-
return executable_path if
|
506
|
+
executable_path = find_executable(File.expand_path(executable, path))
|
507
|
+
return executable_path if executable_path
|
509
508
|
end
|
510
509
|
end
|
511
510
|
end
|
512
511
|
|
512
|
+
def find_executable(path)
|
513
|
+
extensions = RbConfig::CONFIG["EXECUTABLE_EXTS"]&.split
|
514
|
+
extensions = [RbConfig::CONFIG["EXEEXT"]] unless extensions&.any?
|
515
|
+
candidates = extensions.map {|ext| "#{path}#{ext}" }
|
516
|
+
|
517
|
+
candidates.find {|candidate| File.file?(candidate) && File.executable?(candidate) }
|
518
|
+
end
|
519
|
+
|
513
520
|
def read_file(file)
|
514
521
|
SharedHelpers.filesystem_access(file, :read) do
|
515
522
|
File.open(file, "r:UTF-8", &:read)
|
@@ -562,13 +569,30 @@ module Bundler
|
|
562
569
|
|
563
570
|
def git_present?
|
564
571
|
return @git_present if defined?(@git_present)
|
565
|
-
@git_present = Bundler.which("git
|
572
|
+
@git_present = Bundler.which("git")
|
566
573
|
end
|
567
574
|
|
568
575
|
def feature_flag
|
569
576
|
@feature_flag ||= FeatureFlag.new(VERSION)
|
570
577
|
end
|
571
578
|
|
579
|
+
def load_plugins(definition = Bundler.definition)
|
580
|
+
return if defined?(@load_plugins_ran)
|
581
|
+
|
582
|
+
Bundler.rubygems.load_plugins
|
583
|
+
|
584
|
+
requested_path_gems = definition.requested_specs.select {|s| s.source.is_a?(Source::Path) }
|
585
|
+
path_plugin_files = requested_path_gems.flat_map do |spec|
|
586
|
+
spec.matches_for_glob("rubygems_plugin#{Bundler.rubygems.suffix_pattern}")
|
587
|
+
rescue TypeError
|
588
|
+
error_message = "#{spec.name} #{spec.version} has an invalid gemspec"
|
589
|
+
raise Gem::InvalidSpecificationException, error_message
|
590
|
+
end
|
591
|
+
Bundler.rubygems.load_plugin_files(path_plugin_files)
|
592
|
+
Bundler.rubygems.load_env_plugins
|
593
|
+
@load_plugins_ran = true
|
594
|
+
end
|
595
|
+
|
572
596
|
def reset!
|
573
597
|
reset_paths!
|
574
598
|
Plugin.reset!
|
@@ -11,11 +11,11 @@ contributors to follow to reduce the time it takes to get changes merged in.
|
|
11
11
|
2. Ensure that your code blends well with ours:
|
12
12
|
* No trailing whitespace
|
13
13
|
* Match indentation (two spaces)
|
14
|
-
* Match coding style (run `rake rubocop`)
|
14
|
+
* Match coding style (run `bin/rake rubocop`)
|
15
15
|
|
16
16
|
3. If any new files are added or existing files removed in a commit or PR,
|
17
17
|
please update the `Manifest.txt` accordingly. This can be done by running
|
18
|
-
`rake update_manifest`
|
18
|
+
`bin/rake update_manifest`
|
19
19
|
|
20
20
|
4. Don't modify the history file or version number.
|
21
21
|
|
@@ -70,13 +70,11 @@ And to run an individual test method named `test_default` within a test file, yo
|
|
70
70
|
|
71
71
|
### Running bundler tests
|
72
72
|
|
73
|
-
Everything needs to be run from the `bundler/` subfolder.
|
74
|
-
|
75
73
|
To setup bundler tests:
|
76
74
|
|
77
|
-
rake spec:parallel_deps
|
75
|
+
bin/rake spec:parallel_deps
|
78
76
|
|
79
|
-
To run the entire bundler test suite in parallel (it takes a while):
|
77
|
+
To run the entire bundler test suite in parallel (it takes a while), run the following from the `bundler/` subfolder:
|
80
78
|
|
81
79
|
bin/parallel_rspec
|
82
80
|
|
@@ -84,7 +82,7 @@ There are some realworld higher level specs run in CI, but not run by `bin/paral
|
|
84
82
|
|
85
83
|
bin/rake spec:realworld
|
86
84
|
|
87
|
-
To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use:
|
85
|
+
To run an individual test file location for example in `spec/install/gems/standalone_spec.rb` you can use the following from the `bundler/` subfolder:
|
88
86
|
|
89
87
|
bin/rspec spec/install/gems/standalone_spec.rb
|
90
88
|
|
@@ -92,11 +90,13 @@ To run an individual test file location for example in `spec/install/gems/standa
|
|
92
90
|
|
93
91
|
You can check compliance with our code style with
|
94
92
|
|
95
|
-
rake rubocop
|
93
|
+
bin/rake rubocop
|
96
94
|
|
97
95
|
Optionally you can configure git hooks with to check this before every commit with
|
98
96
|
|
99
|
-
rake git_hooks
|
97
|
+
bin/rake git_hooks
|
98
|
+
|
99
|
+
For more information, check [SETUP.md](../bundler/development/SETUP.md) and [DEBUGGING.md](../bundler/development/DEBUGGING.md).
|
100
100
|
|
101
101
|
## Issues
|
102
102
|
|
@@ -84,7 +84,7 @@ changes to `master` by default _won't_ make their way into the current stable
|
|
84
84
|
branch, and development on `master` will be targeting the next minor
|
85
85
|
or major release.
|
86
86
|
|
87
|
-
There is a `rake prepare_release[<target_rubygems_version>]` rake task
|
87
|
+
There is a `bin/rake prepare_release[<target_rubygems_version>]` rake task
|
88
88
|
that helps with creating a release. It takes a single argument, the _exact
|
89
89
|
rubygems release_ being made (e.g. `3.2.3` when releasing bundler `2.2.3`).
|
90
90
|
This task checks out the appropriate stable branch (`3.2`, for example), grabs
|
@@ -158,21 +158,21 @@ affect only very few users in rare cases.
|
|
158
158
|
|
159
159
|
* Confirm all PRs that you want backported are properly tagged with `rubygems:
|
160
160
|
<type>` or `bundler: <type>` labels at GitHub.
|
161
|
-
* Run `rake prepare_release[<target_rubygems_version>]`. This will create
|
162
|
-
to the stable branch with the backports included in the release, and
|
163
|
-
changelogs and version bumps. It will also create a PR to merge
|
164
|
-
changelogs into master.
|
161
|
+
* Run `bin/rake prepare_release[<target_rubygems_version>]`. This will create
|
162
|
+
a PR to the stable branch with the backports included in the release, and
|
163
|
+
proper changelogs and version bumps. It will also create a PR to merge
|
164
|
+
release changelogs into master.
|
165
165
|
* Once CI passes, merge the release PR, switch to the stable branch and pull
|
166
166
|
the PR just merged.
|
167
|
-
* Release `bundler` with `rake bundler:release`.
|
168
|
-
* Release `rubygems` with `rake release`.
|
167
|
+
* Release `bundler` with `bin/rake bundler:release`.
|
168
|
+
* Release `rubygems` with `bin/rake release`.
|
169
169
|
|
170
170
|
### Steps for minor and major releases
|
171
171
|
|
172
172
|
* Confirm all PRs that you want listed in changelogs are properly tagged with
|
173
173
|
`rubygems: <type>` or `bundler: <type>` labels at GitHub.
|
174
|
-
* Run `rake prepare_release[<target_rubygems_version>]`. This will create
|
175
|
-
new stable branch off the master branch, and create a PR to it with the
|
174
|
+
* Run `bin/rake prepare_release[<target_rubygems_version>]`. This will create
|
175
|
+
a new stable branch off the master branch, and create a PR to it with the
|
176
176
|
proper version bumps and changelogs. It will also create a PR to merge
|
177
177
|
release changelogs into master.
|
178
178
|
* Replace the stable branch in the workflows with the new stable branch, and
|
@@ -181,8 +181,8 @@ affect only very few users in rare cases.
|
|
181
181
|
to the master PR.
|
182
182
|
* Once CI passes, merge the release PR, switch to the stable branch and pull
|
183
183
|
the PR just merged.
|
184
|
-
* Release `bundler` with `rake bundler:release`.
|
185
|
-
* Release `rubygems` with `rake release`.
|
184
|
+
* Release `bundler` with `bin/rake bundler:release`.
|
185
|
+
* Release `rubygems` with `bin/rake release`.
|
186
186
|
|
187
187
|
## Committer Access
|
188
188
|
|
@@ -134,7 +134,6 @@ class Gem::BasicSpecification
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def find_full_gem_path # :nodoc:
|
137
|
-
# TODO: also, shouldn't it default to full_name if it hasn't been written?
|
138
137
|
File.expand_path File.join(gems_dir, full_name)
|
139
138
|
end
|
140
139
|
|
@@ -142,10 +141,10 @@ class Gem::BasicSpecification
|
|
142
141
|
|
143
142
|
##
|
144
143
|
# The full path to the gem (install path + full name).
|
144
|
+
#
|
145
|
+
# TODO: This is duplicated with #gem_dir. Eventually either of them should be deprecated.
|
145
146
|
|
146
147
|
def full_gem_path
|
147
|
-
# TODO: This is a heavily used method by gems, so we'll need
|
148
|
-
# to aleast just alias it to #gem_dir rather than remove it.
|
149
148
|
@full_gem_path ||= find_full_gem_path
|
150
149
|
end
|
151
150
|
|
@@ -221,9 +220,11 @@ class Gem::BasicSpecification
|
|
221
220
|
##
|
222
221
|
# Returns the full path to this spec's gem directory.
|
223
222
|
# eg: /usr/local/lib/ruby/1.8/gems/mygem-1.0
|
223
|
+
#
|
224
|
+
# TODO: This is duplicated with #full_gem_path. Eventually either of them should be deprecated.
|
224
225
|
|
225
226
|
def gem_dir
|
226
|
-
@gem_dir ||=
|
227
|
+
@gem_dir ||= find_full_gem_path
|
227
228
|
end
|
228
229
|
|
229
230
|
##
|
@@ -113,9 +113,9 @@ If no gems are named all gems in GEM_HOME are cleaned.
|
|
113
113
|
@candidate_gems = if options[:args].empty?
|
114
114
|
Gem::Specification.to_a
|
115
115
|
else
|
116
|
-
options[:args].
|
116
|
+
options[:args].flat_map do |gem_name|
|
117
117
|
Gem::Specification.find_all_by_name gem_name
|
118
|
-
end
|
118
|
+
end
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
@@ -102,7 +102,7 @@ prefix or only the files that are requireable.
|
|
102
102
|
end
|
103
103
|
|
104
104
|
def files_in_default_gem(spec)
|
105
|
-
spec.files.
|
105
|
+
spec.files.filter_map do |file|
|
106
106
|
if file.start_with?("#{spec.bindir}/")
|
107
107
|
[RbConfig::CONFIG["bindir"], file.delete_prefix("#{spec.bindir}/")]
|
108
108
|
else
|
@@ -119,7 +119,7 @@ prefix or only the files that are requireable.
|
|
119
119
|
|
120
120
|
[resolve.delete_suffix(requirable_part), requirable_part]
|
121
121
|
end
|
122
|
-
end
|
122
|
+
end
|
123
123
|
end
|
124
124
|
|
125
125
|
def gem_contents(name)
|
@@ -189,8 +189,8 @@ prefix or only the files that are requireable.
|
|
189
189
|
end
|
190
190
|
|
191
191
|
def specification_directories # :nodoc:
|
192
|
-
options[:specdirs].
|
192
|
+
options[:specdirs].flat_map do |i|
|
193
193
|
[i, File.join(i, "specifications")]
|
194
|
-
end
|
194
|
+
end
|
195
195
|
end
|
196
196
|
end
|
@@ -222,8 +222,11 @@ to the same gem path as user-installed gems.
|
|
222
222
|
terminate_interaction 1
|
223
223
|
end
|
224
224
|
|
225
|
+
old_exe = $0
|
226
|
+
$0 = exe
|
225
227
|
load Gem.activate_bin_path(contains_executable.first.name, exe, ">= 0.a")
|
226
228
|
ensure
|
229
|
+
$0 = old_exe if old_exe
|
227
230
|
ARGV.replace argv
|
228
231
|
end
|
229
232
|
|
@@ -120,9 +120,9 @@ extensions will be restored.
|
|
120
120
|
elsif options[:only_missing_extensions]
|
121
121
|
specification_record.select(&:missing_extensions?)
|
122
122
|
else
|
123
|
-
get_all_gem_names.sort.
|
123
|
+
get_all_gem_names.sort.flat_map do |gem_name|
|
124
124
|
specification_record.find_all_by_name(gem_name, options[:version]).reverse
|
125
|
-
end
|
125
|
+
end
|
126
126
|
end
|
127
127
|
|
128
128
|
specs = specs.select {|spec| spec.platform == RUBY_ENGINE || Gem::Platform.local === spec.platform || spec.platform == Gem::Platform::RUBY }
|