bundler 2.0.2 → 2.1.0.pre.1

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.

Files changed (210) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +687 -574
  3. data/LICENSE.md +18 -19
  4. data/README.md +8 -7
  5. data/bundler.gemspec +5 -23
  6. data/exe/bundle +19 -3
  7. data/lib/bundler.rb +121 -68
  8. data/lib/bundler/build_metadata.rb +3 -3
  9. data/lib/bundler/capistrano.rb +5 -5
  10. data/lib/bundler/cli.rb +130 -124
  11. data/lib/bundler/cli/add.rb +27 -16
  12. data/lib/bundler/cli/common.rb +10 -11
  13. data/lib/bundler/cli/config.rb +161 -86
  14. data/lib/bundler/cli/console.rb +2 -2
  15. data/lib/bundler/cli/doctor.rb +4 -4
  16. data/lib/bundler/cli/exec.rb +4 -9
  17. data/lib/bundler/cli/gem.rb +5 -5
  18. data/lib/bundler/cli/info.rb +17 -5
  19. data/lib/bundler/cli/init.rb +1 -1
  20. data/lib/bundler/cli/install.rb +3 -3
  21. data/lib/bundler/cli/issue.rb +1 -1
  22. data/lib/bundler/cli/open.rb +10 -6
  23. data/lib/bundler/cli/outdated.rb +85 -81
  24. data/lib/bundler/cli/package.rb +8 -9
  25. data/lib/bundler/cli/plugin.rb +9 -2
  26. data/lib/bundler/cli/pristine.rb +1 -1
  27. data/lib/bundler/cli/show.rb +1 -1
  28. data/lib/bundler/cli/update.rb +32 -12
  29. data/lib/bundler/compact_index_client.rb +25 -9
  30. data/lib/bundler/compact_index_client/updater.rb +2 -6
  31. data/lib/bundler/current_ruby.rb +8 -7
  32. data/lib/bundler/definition.rb +33 -26
  33. data/lib/bundler/dependency.rb +16 -4
  34. data/lib/bundler/deployment.rb +2 -2
  35. data/lib/bundler/dsl.rb +18 -42
  36. data/lib/bundler/env.rb +6 -5
  37. data/lib/bundler/environment_preserver.rb +0 -1
  38. data/lib/bundler/feature_flag.rb +0 -12
  39. data/lib/bundler/fetcher.rb +14 -11
  40. data/lib/bundler/fetcher/compact_index.rb +26 -12
  41. data/lib/bundler/fetcher/dependency.rb +1 -1
  42. data/lib/bundler/fetcher/downloader.rb +3 -0
  43. data/lib/bundler/fetcher/index.rb +4 -2
  44. data/lib/bundler/friendly_errors.rb +4 -5
  45. data/lib/bundler/gem_helper.rb +8 -8
  46. data/lib/bundler/gem_helpers.rb +2 -4
  47. data/lib/bundler/gem_tasks.rb +1 -1
  48. data/lib/bundler/gem_version_promoter.rb +3 -3
  49. data/lib/bundler/graph.rb +2 -2
  50. data/lib/bundler/injector.rb +3 -1
  51. data/lib/bundler/inline.rb +19 -18
  52. data/lib/bundler/installer.rb +7 -14
  53. data/lib/bundler/installer/gem_installer.rb +5 -1
  54. data/lib/bundler/installer/parallel_installer.rb +4 -4
  55. data/lib/bundler/installer/standalone.rb +1 -2
  56. data/lib/bundler/lazy_specification.rb +2 -2
  57. data/lib/bundler/lockfile_parser.rb +13 -21
  58. data/lib/bundler/match_platform.rb +1 -1
  59. data/lib/bundler/plugin.rb +29 -18
  60. data/lib/bundler/plugin/api.rb +1 -1
  61. data/lib/bundler/plugin/api/source.rb +2 -2
  62. data/lib/bundler/plugin/index.rb +10 -2
  63. data/lib/bundler/plugin/installer.rb +28 -15
  64. data/lib/bundler/psyched_yaml.rb +1 -1
  65. data/lib/bundler/resolver.rb +72 -24
  66. data/lib/bundler/resolver/spec_group.rb +2 -2
  67. data/lib/bundler/retry.rb +2 -2
  68. data/lib/bundler/ruby_version.rb +4 -19
  69. data/lib/bundler/rubygems_ext.rb +10 -65
  70. data/lib/bundler/rubygems_gem_installer.rb +1 -1
  71. data/lib/bundler/rubygems_integration.rb +135 -403
  72. data/lib/bundler/runtime.rb +2 -9
  73. data/lib/bundler/settings.rb +15 -48
  74. data/lib/bundler/setup.rb +6 -5
  75. data/lib/bundler/shared_helpers.rb +53 -68
  76. data/lib/bundler/similarity_detector.rb +2 -2
  77. data/lib/bundler/source.rb +5 -5
  78. data/lib/bundler/source/git.rb +19 -12
  79. data/lib/bundler/source/git/git_proxy.rb +35 -39
  80. data/lib/bundler/source/metadata.rb +7 -2
  81. data/lib/bundler/source/path.rb +13 -8
  82. data/lib/bundler/source/rubygems.rb +11 -5
  83. data/lib/bundler/source/rubygems/remote.rb +1 -2
  84. data/lib/bundler/source_list.rb +9 -12
  85. data/lib/bundler/spec_set.rb +1 -6
  86. data/lib/bundler/stub_specification.rb +18 -30
  87. data/lib/bundler/templates/Executable.bundler +22 -13
  88. data/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt +3 -3
  89. data/lib/bundler/templates/newgem/Gemfile.tt +8 -0
  90. data/lib/bundler/templates/newgem/README.md.tt +4 -3
  91. data/lib/bundler/templates/newgem/newgem.gemspec.tt +2 -18
  92. data/lib/bundler/templates/newgem/test/test_helper.rb.tt +0 -4
  93. data/lib/bundler/templates/newgem/travis.yml.tt +0 -1
  94. data/lib/bundler/ui.rb +3 -3
  95. data/lib/bundler/ui/rg_proxy.rb +1 -1
  96. data/lib/bundler/ui/shell.rb +4 -8
  97. data/lib/bundler/vendor/connection_pool/lib/connection_pool.rb +161 -0
  98. data/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb +66 -0
  99. data/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb +176 -0
  100. data/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb +3 -0
  101. data/lib/bundler/vendor/fileutils/lib/fileutils.rb +1 -1
  102. data/lib/bundler/vendor/molinillo/lib/molinillo.rb +6 -6
  103. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb +2 -2
  104. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb +1 -1
  105. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb +1 -1
  106. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb +1 -1
  107. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb +1 -1
  108. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb +6 -6
  109. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb +1 -1
  110. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb +1 -1
  111. data/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb +30 -8
  112. data/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb +1 -1
  113. data/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb +4 -4
  114. data/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb +2 -2
  115. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb +248 -279
  116. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb +40 -0
  117. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb +53 -0
  118. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb +79 -0
  119. data/lib/bundler/vendor/thor/lib/thor.rb +1 -1
  120. data/lib/bundler/vendor/thor/lib/thor/actions.rb +7 -7
  121. data/lib/bundler/vendor/thor/lib/thor/actions/create_file.rb +1 -1
  122. data/lib/bundler/vendor/thor/lib/thor/actions/create_link.rb +1 -1
  123. data/lib/bundler/vendor/thor/lib/thor/actions/directory.rb +1 -1
  124. data/lib/bundler/vendor/thor/lib/thor/actions/inject_into_file.rb +1 -1
  125. data/lib/bundler/vendor/thor/lib/thor/base.rb +13 -13
  126. data/lib/bundler/vendor/thor/lib/thor/group.rb +1 -1
  127. data/lib/bundler/vendor/thor/lib/thor/line_editor.rb +2 -2
  128. data/lib/bundler/vendor/thor/lib/thor/parser.rb +4 -4
  129. data/lib/bundler/vendor/thor/lib/thor/runner.rb +4 -4
  130. data/lib/bundler/vendor/thor/lib/thor/shell.rb +3 -3
  131. data/lib/bundler/vendor/thor/lib/thor/shell/color.rb +1 -1
  132. data/lib/bundler/vendor/thor/lib/thor/shell/html.rb +1 -1
  133. data/lib/bundler/vendor/thor/lib/thor/util.rb +1 -1
  134. data/lib/bundler/vendored_fileutils.rb +1 -6
  135. data/lib/bundler/vendored_molinillo.rb +1 -1
  136. data/lib/bundler/vendored_persistent.rb +7 -5
  137. data/lib/bundler/vendored_thor.rb +2 -2
  138. data/lib/bundler/version.rb +1 -20
  139. data/lib/bundler/version_ranges.rb +51 -5
  140. data/lib/bundler/vlad.rb +3 -3
  141. data/lib/bundler/worker.rb +1 -3
  142. data/lib/bundler/yaml_serializer.rb +2 -3
  143. data/man/bundle-add.1 +10 -2
  144. data/man/bundle-add.1.txt +11 -5
  145. data/man/bundle-add.ronn +7 -1
  146. data/man/bundle-binstubs.1 +2 -2
  147. data/man/bundle-binstubs.1.txt +2 -2
  148. data/man/bundle-binstubs.ronn +1 -1
  149. data/man/bundle-check.1 +1 -1
  150. data/man/bundle-check.1.txt +6 -6
  151. data/man/bundle-clean.1 +1 -1
  152. data/man/bundle-clean.1.txt +1 -1
  153. data/man/bundle-config.1 +35 -35
  154. data/man/bundle-config.1.txt +65 -66
  155. data/man/bundle-config.ronn +41 -39
  156. data/man/bundle-doctor.1 +1 -1
  157. data/man/bundle-doctor.1.txt +1 -1
  158. data/man/bundle-exec.1 +1 -1
  159. data/man/bundle-exec.1.txt +1 -1
  160. data/man/bundle-gem.1 +1 -1
  161. data/man/bundle-gem.1.txt +3 -3
  162. data/man/bundle-info.1 +1 -1
  163. data/man/bundle-info.1.txt +1 -1
  164. data/man/bundle-init.1 +1 -1
  165. data/man/bundle-init.1.txt +1 -1
  166. data/man/bundle-inject.1 +1 -1
  167. data/man/bundle-inject.1.txt +1 -1
  168. data/man/bundle-install.1 +8 -5
  169. data/man/bundle-install.1.txt +56 -51
  170. data/man/bundle-install.ronn +9 -4
  171. data/man/bundle-list.1 +1 -1
  172. data/man/bundle-list.1.txt +1 -1
  173. data/man/bundle-lock.1 +1 -1
  174. data/man/bundle-lock.1.txt +16 -16
  175. data/man/bundle-open.1 +1 -1
  176. data/man/bundle-open.1.txt +1 -1
  177. data/man/bundle-outdated.1 +1 -1
  178. data/man/bundle-outdated.1.txt +1 -1
  179. data/man/bundle-package.1 +1 -1
  180. data/man/bundle-package.1.txt +1 -1
  181. data/man/bundle-platform.1 +1 -1
  182. data/man/bundle-platform.1.txt +1 -1
  183. data/man/bundle-pristine.1 +1 -1
  184. data/man/bundle-pristine.1.txt +1 -1
  185. data/man/bundle-remove.1 +1 -1
  186. data/man/bundle-remove.1.txt +1 -1
  187. data/man/bundle-show.1 +1 -1
  188. data/man/bundle-show.1.txt +1 -1
  189. data/man/bundle-update.1 +4 -4
  190. data/man/bundle-update.1.txt +64 -65
  191. data/man/bundle-update.ronn +3 -3
  192. data/man/bundle-viz.1 +1 -1
  193. data/man/bundle-viz.1.txt +1 -1
  194. data/man/bundle.1 +2 -2
  195. data/man/bundle.1.txt +7 -7
  196. data/man/bundle.ronn +1 -1
  197. data/man/gemfile.5 +12 -15
  198. data/man/gemfile.5.ronn +9 -13
  199. data/man/gemfile.5.txt +103 -107
  200. metadata +11 -112
  201. data/exe/bundle_ruby +0 -60
  202. data/lib/bundler/cli/cache.rb +0 -36
  203. data/lib/bundler/compatibility_guard.rb +0 -13
  204. data/lib/bundler/ssl_certs/.document +0 -1
  205. data/lib/bundler/ssl_certs/certificate_manager.rb +0 -66
  206. data/lib/bundler/ssl_certs/index.rubygems.org/GlobalSignRootCA.pem +0 -21
  207. data/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem +0 -23
  208. data/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem +0 -25
  209. data/lib/bundler/vendor/net-http-persistent/lib/net/http/faster.rb +0 -27
  210. data/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/ssl_reuse.rb +0 -129
@@ -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" "1" "June 2019" "" ""
4
+ .TH "BUNDLE" "1" "August 2019" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -89,7 +89,7 @@ Start an IRB session in the current bundle
89
89
  Open an installed gem in the editor
90
90
  .
91
91
  .TP
92
- \fBbundle lock(1)\fR \fIbundle\-lock\.1\.hmtl\fR
92
+ \fBbundle lock(1)\fR \fIbundle\-lock\.1\.html\fR
93
93
  Generate a lockfile for your dependencies
94
94
  .
95
95
  .TP
@@ -36,7 +36,7 @@ PRIMARY COMMANDS
36
36
  Update dependencies to their latest versions
37
37
 
38
38
  bundle package(1) bundle-package.1.html
39
- Package the .gem files required by your application into the
39
+ Package the .gem files required by your application into the
40
40
  vendor/cache directory
41
41
 
42
42
  bundle exec(1) bundle-exec.1.html
@@ -56,7 +56,7 @@ UTILITIES
56
56
  Generate binstubs for executables in a gem
57
57
 
58
58
  bundle check(1) bundle-check.1.html
59
- Determine whether the requirements for your application are
59
+ Determine whether the requirements for your application are
60
60
  installed and available to Bundler
61
61
 
62
62
  bundle show(1) bundle-show.1.html
@@ -71,7 +71,7 @@ UTILITIES
71
71
  bundle open(1) bundle-open.1.html
72
72
  Open an installed gem in the editor
73
73
 
74
- bundle lock(1) bundle-lock.1.hmtl
74
+ bundle lock(1) bundle-lock.1.html
75
75
  Generate a lockfile for your dependencies
76
76
 
77
77
  bundle viz(1) bundle-viz.1.html
@@ -96,9 +96,9 @@ UTILITIES
96
96
  Removes gems from the Gemfile
97
97
 
98
98
  PLUGINS
99
- When running a command that isn't listed in PRIMARY COMMANDS or UTILI-
100
- TIES, Bundler will try to find an executable on your path named
101
- bundler-<command> and execute it, passing down any extra arguments to
99
+ When running a command that isn't listed in PRIMARY COMMANDS or UTILI-
100
+ TIES, Bundler will try to find an executable on your path named
101
+ bundler-<command> and execute it, passing down any extra arguments to
102
102
  it.
103
103
 
104
104
  OBSOLETE
@@ -113,4 +113,4 @@ OBSOLETE
113
113
 
114
114
 
115
115
 
116
- June 2019 BUNDLE(1)
116
+ August 2019 BUNDLE(1)
@@ -73,7 +73,7 @@ We divide `bundle` subcommands into primary commands and utilities:
73
73
  * [`bundle open(1)`](bundle-open.1.html):
74
74
  Open an installed gem in the editor
75
75
 
76
- * [`bundle lock(1)`](bundle-lock.1.hmtl):
76
+ * [`bundle lock(1)`](bundle-lock.1.html):
77
77
  Generate a lockfile for your dependencies
78
78
 
79
79
  * [`bundle viz(1)`](bundle-viz.1.html):
@@ -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" "June 2019" "" ""
4
+ .TH "GEMFILE" "5" "August 2019" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -158,7 +158,7 @@ Each \fIgem\fR \fBMAY\fR specify files that should be used when autorequiring vi
158
158
 
159
159
  gem "redis", :require => ["redis/connection/hiredis", "redis"]
160
160
  gem "webmock", :require => false
161
- gem "debugger", :require => true
161
+ gem "byebug", :require => true
162
162
  .
163
163
  .fi
164
164
  .
@@ -218,23 +218,23 @@ Bundler\.require(:test) # requires the _test_ group
218
218
  .IP "" 0
219
219
  .
220
220
  .P
221
- The Bundler CLI allows you to specify a list of groups whose gems \fBbundle install\fR should not install with the \fB\-\-without\fR option\. To specify multiple groups to ignore, specify a list of groups separated by spaces\.
221
+ The Bundler CLI allows you to specify a list of groups whose gems \fBbundle install\fR should not install with the \fBwithout\fR configuration\.
222
+ .
223
+ .P
224
+ To specify multiple groups to ignore, specify a list of groups separated by spaces\.
222
225
  .
223
226
  .IP "" 4
224
227
  .
225
228
  .nf
226
229
 
227
- bundle install \-\-without test
228
- bundle install \-\-without development test
230
+ bundle config set without test
231
+ bundle config set without development test
229
232
  .
230
233
  .fi
231
234
  .
232
235
  .IP "" 0
233
236
  .
234
237
  .P
235
- After running \fBbundle install \-\-without test\fR, bundler will remember that you excluded the test group in the last installation\. The next time you run \fBbundle install\fR, without any \fB\-\-without option\fR, bundler will recall it\.
236
- .
237
- .P
238
238
  Also, calling \fBBundler\.setup\fR with no parameters, or calling \fBrequire "bundler/setup"\fR will setup all groups except for the ones you excluded via \fB\-\-without\fR (since they are not available)\.
239
239
  .
240
240
  .P
@@ -409,19 +409,16 @@ Git repositories support a number of additional options\.
409
409
  .
410
410
  .TP
411
411
  \fBbranch\fR, \fBtag\fR, and \fBref\fR
412
- You \fBMUST\fR only specify at most one of these options\. The default is \fB:branch => "master"\fR
413
- .
414
- .TP
415
- For example:
412
+ You \fBMUST\fR only specify at most one of these options\. The default is \fB:branch => "master"\fR\. For example:
416
413
  .
417
414
  .IP
418
- git "https://github\.com/rails/rails\.git", :branch => "5\-0\-stable" do
415
+ gem "rails", :git => "https://github\.com/rails/rails\.git", :branch => "5\-0\-stable"
419
416
  .
420
417
  .IP
421
- git "https://github\.com/rails/rails\.git", :tag => "v5\.0\.0" do
418
+ gem "rails", :git => "https://github\.com/rails/rails\.git", :tag => "v5\.0\.0"
422
419
  .
423
420
  .IP
424
- git "https://github\.com/rails/rails\.git", :ref => "4aded" do
421
+ gem "rails", :git => "https://github\.com/rails/rails\.git", :ref => "4aded"
425
422
  .
426
423
  .TP
427
424
  \fBsubmodules\fR
@@ -126,7 +126,7 @@ prevent any file from being autorequired.
126
126
 
127
127
  gem "redis", :require => ["redis/connection/hiredis", "redis"]
128
128
  gem "webmock", :require => false
129
- gem "debugger", :require => true
129
+ gem "byebug", :require => true
130
130
 
131
131
  The argument defaults to the name of the gem. For example, these are identical:
132
132
 
@@ -159,15 +159,12 @@ The Bundler runtime allows its two main methods, `Bundler.setup` and
159
159
  Bundler.require(:test) # requires the _test_ group
160
160
 
161
161
  The Bundler CLI allows you to specify a list of groups whose gems `bundle install` should
162
- not install with the `--without` option. To specify multiple groups to ignore, specify a
163
- list of groups separated by spaces.
162
+ not install with the `without` configuration.
164
163
 
165
- bundle install --without test
166
- bundle install --without development test
164
+ To specify multiple groups to ignore, specify a list of groups separated by spaces.
167
165
 
168
- After running `bundle install --without test`, bundler will remember that you excluded
169
- the test group in the last installation. The next time you run `bundle install`,
170
- without any `--without option`, bundler will recall it.
166
+ bundle config set without test
167
+ bundle config set without development test
171
168
 
172
169
  Also, calling `Bundler.setup` with no parameters, or calling `require "bundler/setup"`
173
170
  will setup all groups except for the ones you excluded via `--without` (since they
@@ -310,14 +307,13 @@ Git repositories support a number of additional options.
310
307
 
311
308
  * `branch`, `tag`, and `ref`:
312
309
  You `MUST` only specify at most one of these options. The default
313
- is `:branch => "master"`
314
- * For example:
310
+ is `:branch => "master"`. For example:
315
311
 
316
- git "https://github.com/rails/rails.git", :branch => "5-0-stable" do
312
+ gem "rails", :git => "https://github.com/rails/rails.git", :branch => "5-0-stable"
317
313
 
318
- git "https://github.com/rails/rails.git", :tag => "v5.0.0" do
314
+ gem "rails", :git => "https://github.com/rails/rails.git", :tag => "v5.0.0"
319
315
 
320
- git "https://github.com/rails/rails.git", :ref => "4aded" do
316
+ gem "rails", :git => "https://github.com/rails/rails.git", :ref => "4aded"
321
317
 
322
318
  * `submodules`:
323
319
  For reference, a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules)
@@ -99,13 +99,13 @@ RUBY
99
99
  exist. Some of the more well-known implementations include Rubinius
100
100
  https://rubinius.com/, and JRuby http://jruby.org/. Rubinius is an
101
101
  alternative implementation of Ruby written in Ruby. JRuby is an
102
- implementation of Ruby on the JVM, short for Java Virtual Machine.
102
+ implementation of Ruby on the JVM, short for Java Virtual Machine.
103
103
 
104
104
 
105
105
 
106
106
  ENGINE VERSION
107
- Each application may specify a Ruby engine version. If an engine ver-
108
- sion is specified, an engine must also be specified. If the engine is
107
+ Each application may specify a Ruby engine version. If an engine ver-
108
+ sion is specified, an engine must also be specified. If the engine is
109
109
  "ruby" the engine version specified must match the Ruby version.
110
110
 
111
111
 
@@ -147,20 +147,20 @@ GEMS
147
147
 
148
148
 
149
149
  REQUIRE AS
150
- Each gem MAY specify files that should be used when autorequiring via
151
- Bundler.require. You may pass an array with multiple files or true if
152
- file you want required has same name as gem or false to prevent any
150
+ Each gem MAY specify files that should be used when autorequiring via
151
+ Bundler.require. You may pass an array with multiple files or true if
152
+ file you want required has same name as gem or false to prevent any
153
153
  file from being autorequired.
154
154
 
155
155
 
156
156
 
157
157
  gem "redis", :require => ["redis/connection/hiredis", "redis"]
158
158
  gem "webmock", :require => false
159
- gem "debugger", :require => true
159
+ gem "byebug", :require => true
160
160
 
161
161
 
162
162
 
163
- The argument defaults to the name of the gem. For example, these are
163
+ The argument defaults to the name of the gem. For example, these are
164
164
  identical:
165
165
 
166
166
 
@@ -172,8 +172,8 @@ GEMS
172
172
 
173
173
 
174
174
  GROUPS
175
- Each gem MAY specify membership in one or more groups. Any gem that
176
- does not specify membership in any group is placed in the default
175
+ Each gem MAY specify membership in one or more groups. Any gem that
176
+ does not specify membership in any group is placed in the default
177
177
  group.
178
178
 
179
179
 
@@ -183,7 +183,7 @@ GEMS
183
183
 
184
184
 
185
185
 
186
- The Bundler runtime allows its two main methods, Bundler.setup and
186
+ The Bundler runtime allows its two main methods, Bundler.setup and
187
187
  Bundler.require, to limit their impact to particular groups.
188
188
 
189
189
 
@@ -203,37 +203,33 @@ GEMS
203
203
 
204
204
 
205
205
 
206
- The Bundler CLI allows you to specify a list of groups whose gems bun-
207
- dle install should not install with the --without option. To specify
208
- multiple groups to ignore, specify a list of groups separated by spa-
209
- ces.
206
+ The Bundler CLI allows you to specify a list of groups whose gems bun-
207
+ dle install should not install with the without configuration.
210
208
 
209
+ To specify multiple groups to ignore, specify a list of groups sepa-
210
+ rated by spaces.
211
211
 
212
212
 
213
- bundle install --without test
214
- bundle install --without development test
215
213
 
214
+ bundle config set without test
215
+ bundle config set without development test
216
216
 
217
217
 
218
- After running bundle install --without test, bundler will remember that
219
- you excluded the test group in the last installation. The next time you
220
- run bundle install, without any --without option, bundler will recall
221
- it.
222
218
 
223
- Also, calling Bundler.setup with no parameters, or calling require
224
- "bundler/setup" will setup all groups except for the ones you excluded
219
+ Also, calling Bundler.setup with no parameters, or calling require
220
+ "bundler/setup" will setup all groups except for the ones you excluded
225
221
  via --without (since they are not available).
226
222
 
227
- Note that on bundle install, bundler downloads and evaluates all gems,
228
- in order to create a single canonical list of all of the required gems
229
- and their dependencies. This means that you cannot list different ver-
230
- sions of the same gems in different groups. For more details, see
223
+ Note that on bundle install, bundler downloads and evaluates all gems,
224
+ in order to create a single canonical list of all of the required gems
225
+ and their dependencies. This means that you cannot list different ver-
226
+ sions of the same gems in different groups. For more details, see
231
227
  Understanding Bundler https://bundler.io/rationale.html.
232
228
 
233
229
  PLATFORMS
234
- If a gem should only be used in a particular platform or set of plat-
235
- forms, you can specify them. Platforms are essentially identical to
236
- groups, except that you do not need to use the --without install-time
230
+ If a gem should only be used in a particular platform or set of plat-
231
+ forms, you can specify them. Platforms are essentially identical to
232
+ groups, except that you do not need to use the --without install-time
237
233
  flag to exclude groups of gems for other platforms.
238
234
 
239
235
  There are a number of Gemfile platforms:
@@ -256,7 +252,7 @@ GEMS
256
252
 
257
253
  mswin Windows
258
254
 
259
- You can restrict further by platform and version for all platforms
255
+ You can restrict further by platform and version for all platforms
260
256
  except for rbx, jruby, truffleruby and mswin.
261
257
 
262
258
  To specify a version in addition to a platform, append the version num-
@@ -290,12 +286,12 @@ GEMS
290
286
 
291
287
 
292
288
 
293
- All operations involving groups (bundle install bundle-install.1.html,
294
- Bundler.setup, Bundler.require) behave exactly the same as if any
289
+ All operations involving groups (bundle install bundle-install.1.html,
290
+ Bundler.setup, Bundler.require) behave exactly the same as if any
295
291
  groups not matching the current platform were explicitly excluded.
296
292
 
297
293
  SOURCE
298
- You can select an alternate Rubygems repository for a gem using the
294
+ You can select an alternate Rubygems repository for a gem using the
299
295
  ':source' option.
300
296
 
301
297
 
@@ -304,22 +300,22 @@ GEMS
304
300
 
305
301
 
306
302
 
307
- This forces the gem to be loaded from this source and ignores any
308
- global sources declared at the top level of the file. If the gem does
303
+ This forces the gem to be loaded from this source and ignores any
304
+ global sources declared at the top level of the file. If the gem does
309
305
  not exist in this source, it will not be installed.
310
306
 
311
307
  Bundler will search for child dependencies of this gem by first looking
312
308
  in the source selected for the parent, but if they are not found there,
313
- it will fall back on global sources using the ordering described in
309
+ it will fall back on global sources using the ordering described in
314
310
  SOURCE PRIORITY.
315
311
 
316
- Selecting a specific source repository this way also suppresses the
312
+ Selecting a specific source repository this way also suppresses the
317
313
  ambiguous gem warning described above in GLOBAL SOURCES (#source).
318
314
 
319
- Using the :source option for an individual gem will also make that
320
- source available as a possible global source for any other gems which
321
- do not specify explicit sources. Thus, when adding gems with explicit
322
- sources, it is recommended that you also ensure all other gems in the
315
+ Using the :source option for an individual gem will also make that
316
+ source available as a possible global source for any other gems which
317
+ do not specify explicit sources. Thus, when adding gems with explicit
318
+ sources, it is recommended that you also ensure all other gems in the
323
319
  Gemfile are using explicit sources.
324
320
 
325
321
  GIT
@@ -337,27 +333,27 @@ GEMS
337
333
  If using SSH, the user that you use to run bundle install MUST have the
338
334
  appropriate keys available in their $HOME/.ssh.
339
335
 
340
- NOTE: http:// and git:// URLs should be avoided if at all possible.
341
- These protocols are unauthenticated, so a man-in-the-middle attacker
342
- can deliver malicious code and compromise your system. HTTPS and SSH
336
+ NOTE: http:// and git:// URLs should be avoided if at all possible.
337
+ These protocols are unauthenticated, so a man-in-the-middle attacker
338
+ can deliver malicious code and compromise your system. HTTPS and SSH
343
339
  are strongly preferred.
344
340
 
345
- The group, platforms, and require options are available and behave
341
+ The group, platforms, and require options are available and behave
346
342
  exactly the same as they would for a normal gem.
347
343
 
348
- A git repository SHOULD have at least one file, at the root of the
349
- directory containing the gem, with the extension .gemspec. This file
350
- MUST contain a valid gem specification, as expected by the gem build
344
+ A git repository SHOULD have at least one file, at the root of the
345
+ directory containing the gem, with the extension .gemspec. This file
346
+ MUST contain a valid gem specification, as expected by the gem build
351
347
  command.
352
348
 
353
- If a git repository does not have a .gemspec, bundler will attempt to
349
+ If a git repository does not have a .gemspec, bundler will attempt to
354
350
  create one, but it will not contain any dependencies, executables, or C
355
- extension compilation instructions. As a result, it may fail to prop-
351
+ extension compilation instructions. As a result, it may fail to prop-
356
352
  erly integrate into your application.
357
353
 
358
- If a git repository does have a .gemspec for the gem you attached it
359
- to, a version specifier, if provided, means that the git repository is
360
- only valid if the .gemspec specifies a version matching the version
354
+ If a git repository does have a .gemspec for the gem you attached it
355
+ to, a version specifier, if provided, means that the git repository is
356
+ only valid if the .gemspec specifies a version matching the version
361
357
  specifier. If not, bundler will print a warning.
362
358
 
363
359
 
@@ -368,34 +364,34 @@ GEMS
368
364
 
369
365
 
370
366
 
371
- If a git repository does not have a .gemspec for the gem you attached
367
+ If a git repository does not have a .gemspec for the gem you attached
372
368
  it to, a version specifier MUST be provided. Bundler will use this ver-
373
369
  sion in the simple .gemspec it creates.
374
370
 
375
371
  Git repositories support a number of additional options.
376
372
 
377
373
  branch, tag, and ref
378
- You MUST only specify at most one of these options. The default
379
- is :branch => "master"
374
+ You MUST only specify at most one of these options. The default
375
+ is :branch => "master". For example:
380
376
 
381
- For example:
377
+ gem "rails", :git => "https://github.com/rails/rails.git",
378
+ :branch => "5-0-stable"
382
379
 
383
- git "https://github.com/rails/rails.git", :branch => "5-0-sta-
384
- ble" do
380
+ gem "rails", :git => "https://github.com/rails/rails.git", :tag
381
+ => "v5.0.0"
385
382
 
386
- git "https://github.com/rails/rails.git", :tag => "v5.0.0" do
387
-
388
- git "https://github.com/rails/rails.git", :ref => "4aded" do
383
+ gem "rails", :git => "https://github.com/rails/rails.git", :ref
384
+ => "4aded"
389
385
 
390
386
  submodules
391
- For reference, a git submodule
387
+ For reference, a git submodule
392
388
  https://git-scm.com/book/en/v2/Git-Tools-Submodules lets you
393
- have another git repository within a subfolder of your reposi-
389
+ have another git repository within a subfolder of your reposi-
394
390
  tory. Specify :submodules => true to cause bundler to expand any
395
391
  submodules included in the git repository
396
392
 
397
- If a git repository contains multiple .gemspecs, each .gemspec repre-
398
- sents a gem located at the same place in the file system as the .gem-
393
+ If a git repository contains multiple .gemspecs, each .gemspec repre-
394
+ sents a gem located at the same place in the file system as the .gem-
399
395
  spec.
400
396
 
401
397
 
@@ -410,16 +406,16 @@ GEMS
410
406
 
411
407
 
412
408
 
413
- To install a gem located in a git repository, bundler changes to the
414
- directory containing the gemspec, runs gem build name.gemspec and then
409
+ To install a gem located in a git repository, bundler changes to the
410
+ directory containing the gemspec, runs gem build name.gemspec and then
415
411
  installs the resulting gem. The gem build command, which comes standard
416
- with Rubygems, evaluates the .gemspec in the context of the directory
412
+ with Rubygems, evaluates the .gemspec in the context of the directory
417
413
  in which it is located.
418
414
 
419
415
  GIT SOURCE
420
- A custom git source can be defined via the git_source method. Provide
421
- the source's name as an argument, and a block which receives a single
422
- argument and interpolates it into a string to return the full repo
416
+ A custom git source can be defined via the git_source method. Provide
417
+ the source's name as an argument, and a block which receives a single
418
+ argument and interpolates it into a string to return the full repo
423
419
  address:
424
420
 
425
421
 
@@ -442,10 +438,10 @@ GEMS
442
438
  rently expands to an insecure git:// URL. This allows a man-in-the-mid-
443
439
  dle attacker to compromise your system.
444
440
 
445
- If the git repository you want to use is hosted on GitHub and is pub-
446
- lic, you can use the :github shorthand to specify the github username
447
- and repository name (without the trailing ".git"), separated by a
448
- slash. If both the username and repository name are the same, you can
441
+ If the git repository you want to use is hosted on GitHub and is pub-
442
+ lic, you can use the :github shorthand to specify the github username
443
+ and repository name (without the trailing ".git"), separated by a
444
+ slash. If both the username and repository name are the same, you can
449
445
  omit one.
450
446
 
451
447
 
@@ -468,7 +464,7 @@ GEMS
468
464
 
469
465
  GIST
470
466
  If the git repository you want to use is hosted as a Github Gist and is
471
- public, you can use the :gist shorthand to specify the gist identifier
467
+ public, you can use the :gist shorthand to specify the gist identifier
472
468
  (without the trailing ".git").
473
469
 
474
470
 
@@ -485,14 +481,14 @@ GEMS
485
481
 
486
482
 
487
483
 
488
- Since the gist method is a specialization of git_source, it accepts a
484
+ Since the gist method is a specialization of git_source, it accepts a
489
485
  :branch named argument.
490
486
 
491
487
  BITBUCKET
492
- If the git repository you want to use is hosted on Bitbucket and is
493
- public, you can use the :bitbucket shorthand to specify the bitbucket
494
- username and repository name (without the trailing ".git"), separated
495
- by a slash. If both the username and repository name are the same, you
488
+ If the git repository you want to use is hosted on Bitbucket and is
489
+ public, you can use the :bitbucket shorthand to specify the bitbucket
490
+ username and repository name (without the trailing ".git"), separated
491
+ by a slash. If both the username and repository name are the same, you
496
492
  can omit one.
497
493
 
498
494
 
@@ -510,19 +506,19 @@ GEMS
510
506
 
511
507
 
512
508
 
513
- Since the bitbucket method is a specialization of git_source, it
509
+ Since the bitbucket method is a specialization of git_source, it
514
510
  accepts a :branch named argument.
515
511
 
516
512
  PATH
517
- You can specify that a gem is located in a particular location on the
513
+ You can specify that a gem is located in a particular location on the
518
514
  file system. Relative paths are resolved relative to the directory con-
519
515
  taining the Gemfile.
520
516
 
521
- Similar to the semantics of the :git option, the :path option requires
522
- that the directory in question either contains a .gemspec for the gem,
517
+ Similar to the semantics of the :git option, the :path option requires
518
+ that the directory in question either contains a .gemspec for the gem,
523
519
  or that you specify an explicit version that bundler should use.
524
520
 
525
- Unlike :git, bundler does not compile C extensions for gems specified
521
+ Unlike :git, bundler does not compile C extensions for gems specified
526
522
  as paths.
527
523
 
528
524
 
@@ -532,8 +528,8 @@ GEMS
532
528
 
533
529
 
534
530
  If you would like to use multiple local gems directly from the filesys-
535
- tem, you can set a global path option to the path containing the gem's
536
- files. This will automatically load gemspec files from subdirectories.
531
+ tem, you can set a global path option to the path containing the gem's
532
+ files. This will automatically load gemspec files from subdirectories.
537
533
 
538
534
 
539
535
 
@@ -601,48 +597,48 @@ INSTALL_IF
601
597
 
602
598
 
603
599
  GEMSPEC
604
- The .gemspec http://guides.rubygems.org/specification-reference/ file
600
+ The .gemspec http://guides.rubygems.org/specification-reference/ file
605
601
  is where you provide metadata about your gem to Rubygems. Some required
606
- Gemspec attributes include the name, description, and homepage of your
607
- gem. This is also where you specify the dependencies your gem needs to
602
+ Gemspec attributes include the name, description, and homepage of your
603
+ gem. This is also where you specify the dependencies your gem needs to
608
604
  run.
609
605
 
610
606
  If you wish to use Bundler to help install dependencies for a gem while
611
- it is being developed, use the gemspec method to pull in the dependen-
607
+ it is being developed, use the gemspec method to pull in the dependen-
612
608
  cies listed in the .gemspec file.
613
609
 
614
610
  The gemspec method adds any runtime dependencies as gem requirements in
615
- the default group. It also adds development dependencies as gem
616
- requirements in the development group. Finally, it adds a gem require-
611
+ the default group. It also adds development dependencies as gem
612
+ requirements in the development group. Finally, it adds a gem require-
617
613
  ment on your project (:path => '.'). In conjunction with Bundler.setup,
618
614
  this allows you to require project files in your test code as you would
619
- if the project were installed as a gem; you need not manipulate the
615
+ if the project were installed as a gem; you need not manipulate the
620
616
  load path manually or require project files via relative paths.
621
617
 
622
618
  The gemspec method supports optional :path, :glob, :name, and :develop-
623
619
  ment_group options, which control where bundler looks for the .gemspec,
624
- the glob it uses to look for the gemspec (defaults to: "{,,/*}.gem-
625
- spec"), what named .gemspec it uses (if more than one is present), and
620
+ the glob it uses to look for the gemspec (defaults to: "{,,/*}.gem-
621
+ spec"), what named .gemspec it uses (if more than one is present), and
626
622
  which group development dependencies are included in.
627
623
 
628
- When a gemspec dependency encounters version conflicts during resolu-
629
- tion, the local version under development will always be selected --
630
- even if there are remote versions that better match other requirements
624
+ When a gemspec dependency encounters version conflicts during resolu-
625
+ tion, the local version under development will always be selected --
626
+ even if there are remote versions that better match other requirements
631
627
  for the gemspec gem.
632
628
 
633
629
  SOURCE PRIORITY
634
- When attempting to locate a gem to satisfy a gem requirement, bundler
630
+ When attempting to locate a gem to satisfy a gem requirement, bundler
635
631
  uses the following priority order:
636
632
 
637
633
  1. The source explicitly attached to the gem (using :source, :path, or
638
634
  :git)
639
635
 
640
636
  2. For implicit gems (dependencies of explicit gems), any source, git,
641
- or path repository declared on the parent. This results in bundler
642
- prioritizing the ActiveSupport gem from the Rails git repository
637
+ or path repository declared on the parent. This results in bundler
638
+ prioritizing the ActiveSupport gem from the Rails git repository
643
639
  over ones from rubygems.org
644
640
 
645
- 3. The sources specified via global source lines, searching each
641
+ 3. The sources specified via global source lines, searching each
646
642
  source in your Gemfile from last added to first added.
647
643
 
648
644
 
@@ -650,4 +646,4 @@ SOURCE PRIORITY
650
646
 
651
647
 
652
648
 
653
- June 2019 GEMFILE(5)
649
+ August 2019 GEMFILE(5)