rubygems-update 3.5.22 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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) && !@path.empty? && !@path.start_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 }
|