bundler 2.1.4 → 2.2.18
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 +1790 -1430
- data/README.md +6 -8
- data/bundler.gemspec +5 -6
- data/exe/bundle +3 -0
- data/lib/bundler/build_metadata.rb +3 -11
- data/lib/bundler/cli/add.rb +1 -1
- data/lib/bundler/cli/binstubs.rb +6 -2
- data/lib/bundler/cli/cache.rb +2 -7
- data/lib/bundler/cli/clean.rb +1 -1
- data/lib/bundler/cli/common.rb +29 -2
- data/lib/bundler/cli/console.rb +1 -1
- data/lib/bundler/cli/doctor.rb +1 -1
- data/lib/bundler/cli/exec.rb +4 -4
- data/lib/bundler/cli/fund.rb +36 -0
- data/lib/bundler/cli/gem.rb +129 -28
- data/lib/bundler/cli/info.rb +15 -4
- data/lib/bundler/cli/init.rb +2 -2
- data/lib/bundler/cli/inject.rb +1 -1
- data/lib/bundler/cli/install.rb +13 -11
- data/lib/bundler/cli/issue.rb +2 -2
- data/lib/bundler/cli/list.rb +12 -10
- data/lib/bundler/cli/outdated.rb +94 -76
- data/lib/bundler/cli/plugin.rb +10 -0
- data/lib/bundler/cli/pristine.rb +5 -0
- data/lib/bundler/cli/show.rb +1 -1
- data/lib/bundler/cli/update.rb +3 -1
- data/lib/bundler/cli.rb +72 -56
- data/lib/bundler/compact_index_client/cache.rb +6 -14
- data/lib/bundler/compact_index_client/gem_parser.rb +28 -0
- data/lib/bundler/compact_index_client/updater.rb +13 -17
- data/lib/bundler/compact_index_client.rb +1 -1
- data/lib/bundler/current_ruby.rb +1 -0
- data/lib/bundler/definition.rb +117 -188
- data/lib/bundler/dep_proxy.rb +16 -9
- data/lib/bundler/dependency.rb +3 -10
- data/lib/bundler/dsl.rb +40 -33
- data/lib/bundler/endpoint_specification.rb +1 -1
- data/lib/bundler/env.rb +1 -1
- data/lib/bundler/environment_preserver.rb +26 -2
- data/lib/bundler/errors.rb +1 -0
- data/lib/bundler/feature_flag.rb +0 -6
- data/lib/bundler/fetcher/base.rb +1 -1
- data/lib/bundler/fetcher/compact_index.rb +1 -1
- data/lib/bundler/fetcher/downloader.rb +9 -5
- data/lib/bundler/fetcher/index.rb +3 -4
- data/lib/bundler/fetcher.rb +5 -4
- data/lib/bundler/friendly_errors.rb +22 -13
- data/lib/bundler/gem_helper.rb +51 -18
- data/lib/bundler/gem_helpers.rb +36 -25
- data/lib/bundler/gem_version_promoter.rb +4 -4
- data/lib/bundler/graph.rb +1 -1
- data/lib/bundler/index.rb +13 -9
- data/lib/bundler/injector.rb +23 -5
- data/lib/bundler/inline.rb +3 -2
- data/lib/bundler/installer/gem_installer.rb +3 -3
- data/lib/bundler/installer/parallel_installer.rb +46 -25
- data/lib/bundler/installer/standalone.rb +17 -2
- data/lib/bundler/installer.rb +37 -49
- data/lib/bundler/lazy_specification.rb +45 -25
- data/lib/bundler/lockfile_generator.rb +1 -1
- data/lib/bundler/lockfile_parser.rb +4 -14
- data/lib/bundler/man/.document +1 -0
- data/{man → lib/bundler/man}/bundle-add.1 +1 -1
- data/{man/bundle-add.ronn → lib/bundler/man/bundle-add.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-binstubs.1 +5 -3
- data/{man/bundle-binstubs.ronn → lib/bundler/man/bundle-binstubs.1.ronn} +2 -4
- data/{man → lib/bundler/man}/bundle-cache.1 +1 -1
- data/{man/bundle-cache.ronn → lib/bundler/man/bundle-cache.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-check.1 +1 -1
- data/{man/bundle-check.ronn → lib/bundler/man/bundle-check.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-clean.1 +1 -1
- data/{man/bundle-clean.ronn → lib/bundler/man/bundle-clean.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-config.1 +40 -38
- data/{man/bundle-config.ronn → lib/bundler/man/bundle-config.1.ronn} +50 -50
- data/{man → lib/bundler/man}/bundle-doctor.1 +1 -1
- data/{man/bundle-doctor.ronn → lib/bundler/man/bundle-doctor.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-exec.1 +1 -1
- data/{man/bundle-exec.ronn → lib/bundler/man/bundle-exec.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-gem.1 +25 -3
- data/{man/bundle-gem.ronn → lib/bundler/man/bundle-gem.1.ronn} +30 -7
- data/{man → lib/bundler/man}/bundle-info.1 +1 -1
- data/{man/bundle-info.ronn → lib/bundler/man/bundle-info.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-init.1 +1 -1
- data/{man/bundle-init.ronn → lib/bundler/man/bundle-init.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-inject.1 +1 -1
- data/{man/bundle-inject.ronn → lib/bundler/man/bundle-inject.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-install.1 +30 -3
- data/{man/bundle-install.ronn → lib/bundler/man/bundle-install.1.ronn} +25 -3
- data/{man → lib/bundler/man}/bundle-list.1 +7 -7
- data/{man/bundle-list.ronn → lib/bundler/man/bundle-list.1.ronn} +6 -6
- data/{man → lib/bundler/man}/bundle-lock.1 +1 -1
- data/{man/bundle-lock.ronn → lib/bundler/man/bundle-lock.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-open.1 +1 -1
- data/{man/bundle-open.ronn → lib/bundler/man/bundle-open.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-outdated.1 +1 -1
- data/{man/bundle-outdated.ronn → lib/bundler/man/bundle-outdated.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-platform.1 +1 -1
- data/{man/bundle-platform.ronn → lib/bundler/man/bundle-platform.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-pristine.1 +1 -1
- data/{man/bundle-pristine.ronn → lib/bundler/man/bundle-pristine.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-remove.1 +1 -1
- data/{man/bundle-remove.ronn → lib/bundler/man/bundle-remove.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-show.1 +1 -1
- data/{man/bundle-show.ronn → lib/bundler/man/bundle-show.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-update.1 +1 -1
- data/{man/bundle-update.ronn → lib/bundler/man/bundle-update.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle-viz.1 +1 -1
- data/{man/bundle-viz.ronn → lib/bundler/man/bundle-viz.1.ronn} +0 -0
- data/{man → lib/bundler/man}/bundle.1 +1 -1
- data/{man/bundle.ronn → lib/bundler/man/bundle.1.ronn} +0 -0
- data/{man → lib/bundler/man}/gemfile.5 +4 -4
- data/{man → lib/bundler/man}/gemfile.5.ronn +4 -4
- data/{man → lib/bundler/man}/index.txt +0 -0
- data/lib/bundler/mirror.rb +2 -2
- data/lib/bundler/plugin/api/source.rb +22 -1
- data/lib/bundler/plugin/dsl.rb +1 -1
- data/lib/bundler/plugin/index.rb +10 -1
- data/lib/bundler/plugin/installer/rubygems.rb +1 -1
- data/lib/bundler/plugin/installer.rb +9 -11
- data/lib/bundler/plugin/source_list.rb +5 -1
- data/lib/bundler/plugin.rb +33 -7
- data/lib/bundler/psyched_yaml.rb +0 -15
- data/lib/bundler/remote_specification.rb +5 -2
- data/lib/bundler/resolver/spec_group.rb +56 -53
- data/lib/bundler/resolver.rb +88 -115
- data/lib/bundler/retry.rb +2 -2
- data/lib/bundler/ruby_version.rb +1 -1
- data/lib/bundler/rubygems_ext.rb +71 -11
- data/lib/bundler/rubygems_gem_installer.rb +50 -9
- data/lib/bundler/rubygems_integration.rb +25 -60
- data/lib/bundler/runtime.rb +4 -14
- data/lib/bundler/settings.rb +107 -55
- data/lib/bundler/shared_helpers.rb +3 -3
- data/lib/bundler/similarity_detector.rb +1 -1
- data/lib/bundler/source/git/git_proxy.rb +82 -80
- data/lib/bundler/source/git.rb +24 -22
- data/lib/bundler/source/metadata.rb +0 -4
- data/lib/bundler/source/path/installer.rb +10 -10
- data/lib/bundler/source/path.rb +10 -4
- data/lib/bundler/source/rubygems/remote.rb +1 -1
- data/lib/bundler/source/rubygems.rb +60 -28
- data/lib/bundler/source/rubygems_aggregate.rb +64 -0
- data/lib/bundler/source.rb +16 -1
- data/lib/bundler/source_list.rb +52 -28
- data/lib/bundler/source_map.rb +58 -0
- data/lib/bundler/spec_set.rb +29 -17
- data/lib/bundler/stub_specification.rb +25 -7
- data/lib/bundler/templates/Gemfile +1 -1
- data/lib/bundler/templates/gems.rb +1 -1
- data/lib/bundler/templates/newgem/CHANGELOG.md.tt +5 -0
- data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +57 -47
- data/lib/bundler/templates/newgem/Gemfile.tt +9 -1
- data/lib/bundler/templates/newgem/README.md.tt +6 -5
- data/lib/bundler/templates/newgem/Rakefile.tt +19 -5
- data/lib/bundler/templates/newgem/bin/console.tt +1 -0
- data/lib/bundler/templates/newgem/circleci/config.yml.tt +13 -0
- data/lib/bundler/templates/newgem/ext/newgem/extconf.rb.tt +2 -0
- data/lib/bundler/templates/newgem/github/workflows/main.yml.tt +16 -0
- data/lib/bundler/templates/newgem/gitlab-ci.yml.tt +9 -0
- data/lib/bundler/templates/newgem/lib/newgem/version.rb.tt +2 -0
- data/lib/bundler/templates/newgem/lib/newgem.rb.tt +4 -2
- data/lib/bundler/templates/newgem/newgem.gemspec.tt +15 -7
- data/lib/bundler/templates/newgem/rubocop.yml.tt +13 -0
- data/lib/bundler/templates/newgem/spec/newgem_spec.rb.tt +2 -0
- data/lib/bundler/templates/newgem/spec/spec_helper.rb.tt +2 -1
- data/lib/bundler/templates/newgem/test/{newgem_test.rb.tt → minitest/newgem_test.rb.tt} +2 -0
- data/lib/bundler/templates/newgem/test/{test_helper.rb.tt → minitest/test_helper.rb.tt} +2 -0
- data/lib/bundler/templates/newgem/test/test-unit/newgem_test.rb.tt +15 -0
- data/lib/bundler/templates/newgem/test/test-unit/test_helper.rb.tt +6 -0
- data/lib/bundler/ui/shell.rb +5 -5
- data/lib/bundler/uri_credentials_filter.rb +3 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb +7 -0
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +2 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +11 -5
- data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +34 -2
- data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +3 -3
- data/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb +1 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb +12 -1
- data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +49 -47
- data/lib/bundler/vendor/molinillo/lib/molinillo.rb +0 -1
- data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +82 -189
- data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +2 -1
- data/lib/bundler/vendor/thor/lib/thor/actions/file_manipulation.rb +4 -2
- data/lib/bundler/vendor/thor/lib/thor/actions.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/base.rb +9 -0
- data/lib/bundler/vendor/thor/lib/thor/error.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb +5 -1
- data/lib/bundler/vendor/thor/lib/thor/parser/options.rb +9 -8
- data/lib/bundler/vendor/thor/lib/thor/shell/basic.rb +5 -2
- data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +5 -1
- data/lib/bundler/vendor/thor/lib/thor/version.rb +1 -1
- data/lib/bundler/vendor/thor/lib/thor.rb +5 -13
- data/lib/bundler/vendor/tmpdir/lib/tmpdir.rb +154 -0
- data/lib/bundler/vendored_persistent.rb +0 -7
- data/lib/bundler/vendored_tmpdir.rb +4 -0
- data/lib/bundler/version.rb +1 -1
- data/lib/bundler/worker.rb +1 -1
- data/lib/bundler/yaml_serializer.rb +1 -1
- data/lib/bundler.rb +34 -9
- metadata +77 -86
- data/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb +0 -26
- data/man/bundle-add.1.txt +0 -58
- data/man/bundle-binstubs.1.txt +0 -48
- data/man/bundle-cache.1.txt +0 -78
- data/man/bundle-check.1.txt +0 -33
- data/man/bundle-clean.1.txt +0 -26
- data/man/bundle-config.1.txt +0 -528
- data/man/bundle-doctor.1.txt +0 -44
- data/man/bundle-exec.1.txt +0 -178
- data/man/bundle-gem.1.txt +0 -91
- data/man/bundle-info.1.txt +0 -21
- data/man/bundle-init.1.txt +0 -34
- data/man/bundle-inject.1.txt +0 -32
- data/man/bundle-install.1.txt +0 -401
- data/man/bundle-list.1.txt +0 -43
- data/man/bundle-lock.1.txt +0 -93
- data/man/bundle-open.1.txt +0 -29
- data/man/bundle-outdated.1.txt +0 -131
- data/man/bundle-platform.1.txt +0 -57
- data/man/bundle-pristine.1.txt +0 -44
- data/man/bundle-remove.1.txt +0 -34
- data/man/bundle-show.1.txt +0 -27
- data/man/bundle-update.1.txt +0 -390
- data/man/bundle-viz.1.txt +0 -39
- data/man/bundle.1.txt +0 -116
- data/man/gemfile.5.txt +0 -649
@@ -3,7 +3,7 @@ bundle-list(1) -- List all the gems in the bundle
|
|
3
3
|
|
4
4
|
## SYNOPSIS
|
5
5
|
|
6
|
-
`bundle list` [--name-only] [--paths] [--without-group=GROUP] [--only-group=GROUP]
|
6
|
+
`bundle list` [--name-only] [--paths] [--without-group=GROUP[ GROUP...]] [--only-group=GROUP[ GROUP...]]
|
7
7
|
|
8
8
|
## DESCRIPTION
|
9
9
|
|
@@ -19,7 +19,7 @@ bundle list --without-group test
|
|
19
19
|
|
20
20
|
bundle list --only-group dev
|
21
21
|
|
22
|
-
bundle list --only-group dev --paths
|
22
|
+
bundle list --only-group dev test --paths
|
23
23
|
|
24
24
|
## OPTIONS
|
25
25
|
|
@@ -27,7 +27,7 @@ bundle list --only-group dev --paths
|
|
27
27
|
Print only the name of each gem.
|
28
28
|
* `--paths`:
|
29
29
|
Print the path to each gem in the bundle.
|
30
|
-
* `--without-group
|
31
|
-
|
32
|
-
* `--only-group
|
33
|
-
|
30
|
+
* `--without-group=<list>`:
|
31
|
+
A space-separated list of groups of gems to skip during printing.
|
32
|
+
* `--only-group=<list>`:
|
33
|
+
A space-separated list of groups of gems to print.
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-OUTDATED" "1" "
|
4
|
+
.TH "BUNDLE\-OUTDATED" "1" "May 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-outdated\fR \- List installed gems with newer versions available
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-PLATFORM" "1" "
|
4
|
+
.TH "BUNDLE\-PLATFORM" "1" "May 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-platform\fR \- Displays platform compatibility information
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-PRISTINE" "1" "
|
4
|
+
.TH "BUNDLE\-PRISTINE" "1" "May 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-SHOW" "1" "
|
4
|
+
.TH "BUNDLE\-SHOW" "1" "May 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "BUNDLE\-UPDATE" "1" "
|
4
|
+
.TH "BUNDLE\-UPDATE" "1" "May 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBbundle\-update\fR \- Update your gems to the latest available versions
|
File without changes
|
File without changes
|
File without changes
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "GEMFILE" "5" "
|
4
|
+
.TH "GEMFILE" "5" "May 2021" "" ""
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
|
@@ -150,7 +150,7 @@ gem "RedCloth", ">= 4\.1\.0", "< 4\.2\.0"
|
|
150
150
|
.IP "" 0
|
151
151
|
.
|
152
152
|
.SS "REQUIRE AS"
|
153
|
-
Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if file you want \fBrequired\fR has same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
|
153
|
+
Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring via \fBBundler\.require\fR\. You may pass an array with multiple files or \fBtrue\fR if the file you want \fBrequired\fR has the same name as \fIgem\fR or \fBfalse\fR to prevent any file from being autorequired\.
|
154
154
|
.
|
155
155
|
.IP "" 4
|
156
156
|
.
|
@@ -227,8 +227,8 @@ To specify multiple groups to ignore, specify a list of groups separated by spac
|
|
227
227
|
.
|
228
228
|
.nf
|
229
229
|
|
230
|
-
bundle config set without test
|
231
|
-
bundle config set without development test
|
230
|
+
bundle config set \-\-local without test
|
231
|
+
bundle config set \-\-local without development test
|
232
232
|
.
|
233
233
|
.fi
|
234
234
|
.
|
@@ -120,8 +120,8 @@ Each _gem_ `MAY` have one or more version specifiers.
|
|
120
120
|
### REQUIRE AS
|
121
121
|
|
122
122
|
Each _gem_ `MAY` specify files that should be used when autorequiring via
|
123
|
-
`Bundler.require`. You may pass an array with multiple files or `true` if file
|
124
|
-
you want `required` has same name as _gem_ or `false` to
|
123
|
+
`Bundler.require`. You may pass an array with multiple files or `true` if the file
|
124
|
+
you want `required` has the same name as _gem_ or `false` to
|
125
125
|
prevent any file from being autorequired.
|
126
126
|
|
127
127
|
gem "redis", :require => ["redis/connection/hiredis", "redis"]
|
@@ -163,8 +163,8 @@ not install with the `without` configuration.
|
|
163
163
|
|
164
164
|
To specify multiple groups to ignore, specify a list of groups separated by spaces.
|
165
165
|
|
166
|
-
bundle config set without test
|
167
|
-
bundle config set without development test
|
166
|
+
bundle config set --local without test
|
167
|
+
bundle config set --local without development test
|
168
168
|
|
169
169
|
Also, calling `Bundler.setup` with no parameters, or calling `require "bundler/setup"`
|
170
170
|
will setup all groups except for the ones you excluded via `--without` (since they
|
File without changes
|
data/lib/bundler/mirror.rb
CHANGED
@@ -43,7 +43,7 @@ module Bundler
|
|
43
43
|
config.update_mirror(mirror)
|
44
44
|
end
|
45
45
|
|
46
|
-
|
46
|
+
private
|
47
47
|
|
48
48
|
def fetch_valid_mirror_for(uri)
|
49
49
|
downcased = uri.to_s.downcase
|
@@ -158,7 +158,7 @@ module Bundler
|
|
158
158
|
end
|
159
159
|
end
|
160
160
|
|
161
|
-
|
161
|
+
private
|
162
162
|
|
163
163
|
def wait_for_writtable_socket(socket, address, timeout)
|
164
164
|
if IO.select(nil, [socket], nil, timeout)
|
@@ -140,6 +140,13 @@ module Bundler
|
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
|
+
# Set internal representation to fetch the gems/specs locally.
|
144
|
+
#
|
145
|
+
# When this is called, the source should try to fetch the specs and
|
146
|
+
# install from the local system.
|
147
|
+
def local!
|
148
|
+
end
|
149
|
+
|
143
150
|
# Set internal representation to fetch the gems/specs from remote.
|
144
151
|
#
|
145
152
|
# When this is called, the source should try to fetch the specs and
|
@@ -237,6 +244,20 @@ module Bundler
|
|
237
244
|
specs.unmet_dependency_names
|
238
245
|
end
|
239
246
|
|
247
|
+
# Used by definition.
|
248
|
+
#
|
249
|
+
# Note: Do not override if you don't know what you are doing.
|
250
|
+
def spec_names
|
251
|
+
specs.spec_names
|
252
|
+
end
|
253
|
+
|
254
|
+
# Used by definition.
|
255
|
+
#
|
256
|
+
# Note: Do not override if you don't know what you are doing.
|
257
|
+
def add_dependency_names(names)
|
258
|
+
@dependencies |= Array(names)
|
259
|
+
end
|
260
|
+
|
240
261
|
# Note: Do not override if you don't know what you are doing.
|
241
262
|
def can_lock?(spec)
|
242
263
|
spec.source == self
|
@@ -260,7 +281,7 @@ module Bundler
|
|
260
281
|
end
|
261
282
|
|
262
283
|
def to_s
|
263
|
-
"plugin source for #{
|
284
|
+
"plugin source for #{@type} with uri #{@uri}"
|
264
285
|
end
|
265
286
|
|
266
287
|
# Note: Do not override if you don't know what you are doing.
|
data/lib/bundler/plugin/dsl.rb
CHANGED
@@ -10,7 +10,7 @@ module Bundler
|
|
10
10
|
# So that we don't have to override all there methods to dummy ones
|
11
11
|
# explicitly.
|
12
12
|
# They will be handled by method_missing
|
13
|
-
[:gemspec, :gem, :
|
13
|
+
[:gemspec, :gem, :install_if, :platforms, :env].each {|m| undef_method m }
|
14
14
|
|
15
15
|
# This lists the plugins that was added automatically and not specified by
|
16
16
|
# the user.
|
data/lib/bundler/plugin/index.rb
CHANGED
@@ -71,6 +71,15 @@ module Bundler
|
|
71
71
|
raise
|
72
72
|
end
|
73
73
|
|
74
|
+
def unregister_plugin(name)
|
75
|
+
@commands.delete_if {|_, v| v == name }
|
76
|
+
@sources.delete_if {|_, v| v == name }
|
77
|
+
@hooks.each {|_, plugin_names| plugin_names.delete(name) }
|
78
|
+
@plugin_paths.delete(name)
|
79
|
+
@load_paths.delete(name)
|
80
|
+
save_index
|
81
|
+
end
|
82
|
+
|
74
83
|
# Path of default index file
|
75
84
|
def index_file
|
76
85
|
Plugin.root.join("index")
|
@@ -124,7 +133,7 @@ module Bundler
|
|
124
133
|
@hooks[event] || []
|
125
134
|
end
|
126
135
|
|
127
|
-
|
136
|
+
private
|
128
137
|
|
129
138
|
# Reads the index file from the directory and initializes the instance
|
130
139
|
# variables.
|
@@ -16,15 +16,13 @@ module Bundler
|
|
16
16
|
|
17
17
|
version = options[:version] || [">= 0"]
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
install_rubygems(names, version, sources)
|
27
|
-
end
|
19
|
+
if options[:git]
|
20
|
+
install_git(names, version, options)
|
21
|
+
elsif options[:local_git]
|
22
|
+
install_local_git(names, version, options)
|
23
|
+
else
|
24
|
+
sources = options[:source] || Bundler.rubygems.sources
|
25
|
+
install_rubygems(names, version, sources)
|
28
26
|
end
|
29
27
|
end
|
30
28
|
|
@@ -41,7 +39,7 @@ module Bundler
|
|
41
39
|
install_from_specs specs
|
42
40
|
end
|
43
41
|
|
44
|
-
|
42
|
+
private
|
45
43
|
|
46
44
|
def check_sources_consistency!(options)
|
47
45
|
if options.key?(:git) && options.key?(:local_git)
|
@@ -79,7 +77,7 @@ module Bundler
|
|
79
77
|
source_list = SourceList.new
|
80
78
|
|
81
79
|
source_list.add_git_source(git_source_options) if git_source_options
|
82
|
-
source_list.
|
80
|
+
source_list.global_rubygems_source = rubygems_source if rubygems_source
|
83
81
|
|
84
82
|
deps = names.map {|name| Dependency.new name, version }
|
85
83
|
|
@@ -17,7 +17,11 @@ module Bundler
|
|
17
17
|
path_sources + git_sources + rubygems_sources + [metadata_source]
|
18
18
|
end
|
19
19
|
|
20
|
-
|
20
|
+
def default_source
|
21
|
+
git_sources.first || global_rubygems_source
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
21
25
|
|
22
26
|
def rubygems_aggregate_class
|
23
27
|
Plugin::Installer::Rubygems
|
data/lib/bundler/plugin.rb
CHANGED
@@ -16,7 +16,7 @@ module Bundler
|
|
16
16
|
|
17
17
|
PLUGIN_FILE_NAME = "plugins.rb".freeze
|
18
18
|
|
19
|
-
|
19
|
+
module_function
|
20
20
|
|
21
21
|
def reset!
|
22
22
|
instance_variables.each {|i| remove_instance_variable(i) }
|
@@ -39,12 +39,37 @@ module Bundler
|
|
39
39
|
|
40
40
|
save_plugins names, specs
|
41
41
|
rescue PluginError => e
|
42
|
-
|
43
|
-
|
44
|
-
|
42
|
+
specs_to_delete = specs.select {|k, _v| names.include?(k) && !index.commands.values.include?(k) }
|
43
|
+
specs_to_delete.each_value {|spec| Bundler.rm_rf(spec.full_gem_path) }
|
44
|
+
|
45
|
+
names_list = names.map {|name| "`#{name}`" }.join(", ")
|
46
|
+
Bundler.ui.error "Failed to install the following plugins: #{names_list}. The underlying error was: #{e.message}.\n #{e.backtrace.join("\n ")}"
|
47
|
+
end
|
48
|
+
|
49
|
+
# Uninstalls plugins by the given names
|
50
|
+
#
|
51
|
+
# @param [Array<String>] names the names of plugins to be uninstalled
|
52
|
+
def uninstall(names, options)
|
53
|
+
if names.empty? && !options[:all]
|
54
|
+
Bundler.ui.error "No plugins to uninstall. Specify at least 1 plugin to uninstall.\n"\
|
55
|
+
"Use --all option to uninstall all the installed plugins."
|
56
|
+
return
|
45
57
|
end
|
46
58
|
|
47
|
-
|
59
|
+
names = index.installed_plugins if options[:all]
|
60
|
+
if names.any?
|
61
|
+
names.each do |name|
|
62
|
+
if index.installed?(name)
|
63
|
+
Bundler.rm_rf(index.plugin_path(name))
|
64
|
+
index.unregister_plugin(name)
|
65
|
+
Bundler.ui.info "Uninstalled plugin #{name}"
|
66
|
+
else
|
67
|
+
Bundler.ui.error "Plugin #{name} is not installed \n"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
else
|
71
|
+
Bundler.ui.info "No plugins installed"
|
72
|
+
end
|
48
73
|
end
|
49
74
|
|
50
75
|
# List installed plugins and commands
|
@@ -80,6 +105,7 @@ module Bundler
|
|
80
105
|
else
|
81
106
|
builder.eval_gemfile(gemfile)
|
82
107
|
end
|
108
|
+
builder.check_primary_source_safety
|
83
109
|
definition = builder.to_definition(nil, true)
|
84
110
|
|
85
111
|
return if definition.dependencies.empty?
|
@@ -138,7 +164,7 @@ module Bundler
|
|
138
164
|
end
|
139
165
|
|
140
166
|
# To be called from Cli class to pass the command and argument to
|
141
|
-
#
|
167
|
+
# appropriate plugin class
|
142
168
|
def exec_command(command, args)
|
143
169
|
raise UndefinedCommandError, "Command `#{command}` not found" unless command? command
|
144
170
|
|
@@ -157,7 +183,7 @@ module Bundler
|
|
157
183
|
!index.source_plugin(name.to_s).nil?
|
158
184
|
end
|
159
185
|
|
160
|
-
# @return [Class] that handles the source. The
|
186
|
+
# @return [Class] that handles the source. The class includes API::Source
|
161
187
|
def source(name)
|
162
188
|
raise UnknownSourceError, "Source #{name} not found" unless source? name
|
163
189
|
|
data/lib/bundler/psyched_yaml.rb
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
# Psych could be a gem, so try to ask for it
|
4
|
-
begin
|
5
|
-
gem "psych"
|
6
|
-
rescue LoadError
|
7
|
-
end if defined?(gem)
|
8
|
-
|
9
3
|
# Psych could be in the stdlib
|
10
4
|
# but it's too late if Syck is already loaded
|
11
5
|
begin
|
@@ -26,12 +20,3 @@ module Bundler
|
|
26
20
|
YamlLibrarySyntaxError = ::ArgumentError
|
27
21
|
end
|
28
22
|
end
|
29
|
-
|
30
|
-
require_relative "deprecate"
|
31
|
-
begin
|
32
|
-
Bundler::Deprecate.skip_during do
|
33
|
-
require "rubygems/safe_yaml"
|
34
|
-
end
|
35
|
-
rescue LoadError
|
36
|
-
# it's OK if the file isn't there
|
37
|
-
end
|
@@ -50,6 +50,8 @@ module Bundler
|
|
50
50
|
# once the remote gem is downloaded, the backend specification will
|
51
51
|
# be swapped out.
|
52
52
|
def __swap__(spec)
|
53
|
+
raise APIResponseInvalidDependenciesError unless spec.dependencies.all? {|d| d.is_a?(Gem::Dependency) }
|
54
|
+
|
53
55
|
SharedHelpers.ensure_same_dependencies(self, dependencies, spec.dependencies)
|
54
56
|
@_remote_specification = spec
|
55
57
|
end
|
@@ -76,7 +78,8 @@ module Bundler
|
|
76
78
|
deps = method_missing(:dependencies)
|
77
79
|
|
78
80
|
# allow us to handle when the specs dependencies are an array of array of string
|
79
|
-
#
|
81
|
+
# in order to delay the crash to `#__swap__` where it results in a friendlier error
|
82
|
+
# see https://github.com/rubygems/bundler/issues/5797
|
80
83
|
deps = deps.map {|d| d.is_a?(Gem::Dependency) ? d : Gem::Dependency.new(*d) }
|
81
84
|
|
82
85
|
deps
|
@@ -88,7 +91,7 @@ module Bundler
|
|
88
91
|
" #{source.revision[0..6]}"
|
89
92
|
end
|
90
93
|
|
91
|
-
|
94
|
+
private
|
92
95
|
|
93
96
|
def to_ary
|
94
97
|
nil
|