bundler 2.3.21 → 2.3.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/bundler.gemspec +6 -8
  4. data/lib/bundler/build_metadata.rb +2 -2
  5. data/lib/bundler/cli.rb +2 -1
  6. data/lib/bundler/current_ruby.rb +14 -5
  7. data/lib/bundler/definition.rb +5 -8
  8. data/lib/bundler/dependency.rb +18 -85
  9. data/lib/bundler/endpoint_specification.rb +1 -1
  10. data/lib/bundler/feature_flag.rb +0 -1
  11. data/lib/bundler/gem_version_promoter.rb +4 -18
  12. data/lib/bundler/injector.rb +2 -1
  13. data/lib/bundler/lockfile_generator.rb +1 -1
  14. data/lib/bundler/man/bundle-add.1 +6 -2
  15. data/lib/bundler/man/bundle-add.1.ronn +4 -1
  16. data/lib/bundler/man/bundle-binstubs.1 +1 -1
  17. data/lib/bundler/man/bundle-cache.1 +1 -1
  18. data/lib/bundler/man/bundle-check.1 +1 -1
  19. data/lib/bundler/man/bundle-clean.1 +1 -1
  20. data/lib/bundler/man/bundle-config.1 +1 -1
  21. data/lib/bundler/man/bundle-console.1 +53 -0
  22. data/lib/bundler/man/bundle-console.1.ronn +44 -0
  23. data/lib/bundler/man/bundle-doctor.1 +1 -1
  24. data/lib/bundler/man/bundle-exec.1 +1 -1
  25. data/lib/bundler/man/bundle-gem.1 +1 -1
  26. data/lib/bundler/man/bundle-help.1 +13 -0
  27. data/lib/bundler/man/bundle-help.1.ronn +12 -0
  28. data/lib/bundler/man/bundle-info.1 +1 -1
  29. data/lib/bundler/man/bundle-init.1 +1 -1
  30. data/lib/bundler/man/bundle-inject.1 +1 -1
  31. data/lib/bundler/man/bundle-install.1 +1 -1
  32. data/lib/bundler/man/bundle-list.1 +1 -1
  33. data/lib/bundler/man/bundle-lock.1 +1 -1
  34. data/lib/bundler/man/bundle-open.1 +1 -1
  35. data/lib/bundler/man/bundle-outdated.1 +1 -1
  36. data/lib/bundler/man/bundle-platform.1 +1 -1
  37. data/lib/bundler/man/bundle-plugin.1 +1 -1
  38. data/lib/bundler/man/bundle-pristine.1 +1 -1
  39. data/lib/bundler/man/bundle-remove.1 +1 -1
  40. data/lib/bundler/man/bundle-show.1 +1 -1
  41. data/lib/bundler/man/bundle-update.1 +1 -1
  42. data/lib/bundler/man/bundle-version.1 +35 -0
  43. data/lib/bundler/man/bundle-version.1.ronn +24 -0
  44. data/lib/bundler/man/bundle-viz.1 +1 -1
  45. data/lib/bundler/man/bundle.1 +6 -2
  46. data/lib/bundler/man/bundle.1.ronn +4 -1
  47. data/lib/bundler/man/gemfile.5 +8 -38
  48. data/lib/bundler/man/gemfile.5.ronn +9 -27
  49. data/lib/bundler/man/index.txt +3 -0
  50. data/lib/bundler/match_remote_metadata.rb +4 -1
  51. data/lib/bundler/resolver/base.rb +50 -0
  52. data/lib/bundler/resolver.rb +67 -84
  53. data/lib/bundler/rubygems_ext.rb +13 -3
  54. data/lib/bundler/settings.rb +0 -1
  55. data/lib/bundler/spec_set.rb +10 -0
  56. data/lib/bundler/version.rb +1 -1
  57. metadata +11 -4
@@ -0,0 +1,12 @@
1
+ bundle-help(1) -- Displays detailed help for each subcommand
2
+ ============================================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `bundle help` [COMMAND]
7
+
8
+ ## DESCRIPTION
9
+
10
+ Displays detailed help for the given subcommand.
11
+ You can specify a single `COMMAND` at the same time.
12
+ When `COMMAND` is omitted, help for `help` command will be displayed.
@@ -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\-INFO" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-INFO" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-info\fR \- Show information for the given gem in your bundle
@@ -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\-INIT" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-INIT" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-init\fR \- Generates a Gemfile into the current working directory
@@ -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\-INJECT" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-INJECT" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-inject\fR \- Add named gem(s) with version requirements to Gemfile
@@ -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\-INSTALL" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-INSTALL" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-install\fR \- Install the dependencies specified in your Gemfile
@@ -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\-LIST" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-LIST" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-list\fR \- List all the gems in the bundle
@@ -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\-LOCK" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-LOCK" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-lock\fR \- Creates / Updates a lockfile without installing
@@ -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\-OPEN" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-OPEN" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-open\fR \- Opens the source directory for a gem in your bundle
@@ -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" "August 2022" "" ""
4
+ .TH "BUNDLE\-OUTDATED" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-outdated\fR \- List installed gems with newer versions available
@@ -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" "August 2022" "" ""
4
+ .TH "BUNDLE\-PLATFORM" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-platform\fR \- Displays platform compatibility information
@@ -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\-PLUGIN" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-PLUGIN" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-plugin\fR \- Manage Bundler plugins
@@ -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" "August 2022" "" ""
4
+ .TH "BUNDLE\-PRISTINE" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-pristine\fR \- Restores installed gems to their pristine condition
@@ -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\-REMOVE" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-REMOVE" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-remove\fR \- Removes gems from the Gemfile
@@ -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" "August 2022" "" ""
4
+ .TH "BUNDLE\-SHOW" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-show\fR \- Shows all the gems in your bundle, or the path to a gem
@@ -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" "August 2022" "" ""
4
+ .TH "BUNDLE\-UPDATE" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-update\fR \- Update your gems to the latest available versions
@@ -0,0 +1,35 @@
1
+ .\" generated with Ronn/v0.7.3
2
+ .\" http://github.com/rtomayko/ronn/tree/0.7.3
3
+ .
4
+ .TH "BUNDLE\-VERSION" "1" "September 2022" "" ""
5
+ .
6
+ .SH "NAME"
7
+ \fBbundle\-version\fR \- Prints Bundler version information
8
+ .
9
+ .SH "SYNOPSIS"
10
+ \fBbundle version\fR
11
+ .
12
+ .SH "DESCRIPTION"
13
+ Prints Bundler version information\.
14
+ .
15
+ .SH "OPTIONS"
16
+ No options\.
17
+ .
18
+ .SH "EXAMPLE"
19
+ Print the version of Bundler with build date and commit hash of the in the Git source\.
20
+ .
21
+ .IP "" 4
22
+ .
23
+ .nf
24
+
25
+ bundle version
26
+ .
27
+ .fi
28
+ .
29
+ .IP "" 0
30
+ .
31
+ .P
32
+ shows \fBBundler version 2\.3\.21 (2022\-08\-24 commit d54be5fdd8)\fR for example\.
33
+ .
34
+ .P
35
+ cf\. \fBbundle \-\-version\fR shows \fBBundler version 2\.3\.21\fR\.
@@ -0,0 +1,24 @@
1
+ bundle-version(1) -- Prints Bundler version information
2
+ =======================================================
3
+
4
+ ## SYNOPSIS
5
+
6
+ `bundle version`
7
+
8
+ ## DESCRIPTION
9
+
10
+ Prints Bundler version information.
11
+
12
+ ## OPTIONS
13
+
14
+ No options.
15
+
16
+ ## EXAMPLE
17
+
18
+ Print the version of Bundler with build date and commit hash of the in the Git source.
19
+
20
+ bundle version
21
+
22
+ shows `Bundler version 2.3.21 (2022-08-24 commit d54be5fdd8)` for example.
23
+
24
+ cf. `bundle --version` shows `Bundler version 2.3.21`.
@@ -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\-VIZ" "1" "August 2022" "" ""
4
+ .TH "BUNDLE\-VIZ" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-viz\fR \- Generates a visual dependency graph for your Gemfile
@@ -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" "August 2022" "" ""
4
+ .TH "BUNDLE" "1" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -55,7 +55,7 @@ Execute a script in the current bundle
55
55
  Specify and read configuration options for Bundler
56
56
  .
57
57
  .TP
58
- \fBbundle help(1)\fR
58
+ \fBbundle help(1)\fR \fIbundle\-help\.1\.html\fR
59
59
  Display detailed help for each subcommand
60
60
  .
61
61
  .SH "UTILITIES"
@@ -124,6 +124,10 @@ Removes gems from the Gemfile
124
124
  \fBbundle plugin(1)\fR \fIbundle\-plugin\.1\.html\fR
125
125
  Manage Bundler plugins
126
126
  .
127
+ .TP
128
+ \fBbundle version(1)\fR \fIbundle\-version\.1\.html\fR
129
+ Prints Bundler version information
130
+ .
127
131
  .SH "PLUGINS"
128
132
  When running a command that isn\'t listed in PRIMARY COMMANDS or UTILITIES, Bundler will try to find an executable on your path named \fBbundler\-<command>\fR and execute it, passing down any extra arguments to it\.
129
133
  .
@@ -46,7 +46,7 @@ We divide `bundle` subcommands into primary commands and utilities:
46
46
  * [`bundle config(1)`](bundle-config.1.html):
47
47
  Specify and read configuration options for Bundler
48
48
 
49
- * `bundle help(1)`:
49
+ * [`bundle help(1)`](bundle-help.1.html):
50
50
  Display detailed help for each subcommand
51
51
 
52
52
  ## UTILITIES
@@ -100,6 +100,9 @@ We divide `bundle` subcommands into primary commands and utilities:
100
100
  * [`bundle plugin(1)`](bundle-plugin.1.html):
101
101
  Manage Bundler plugins
102
102
 
103
+ * [`bundle version(1)`](bundle-version.1.html):
104
+ Prints Bundler version information
105
+
103
106
  ## PLUGINS
104
107
 
105
108
  When running a command that isn't listed in PRIMARY COMMANDS or UTILITIES,
@@ -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" "August 2022" "" ""
4
+ .TH "GEMFILE" "5" "September 2022" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBGemfile\fR \- A format for describing gem dependencies for Ruby programs
@@ -254,19 +254,15 @@ There are a number of \fBGemfile\fR platforms:
254
254
  .
255
255
  .TP
256
256
  \fBruby\fR
257
- C Ruby (MRI), Rubinius or TruffleRuby, but \fBNOT\fR Windows
257
+ C Ruby (MRI), Rubinius, or TruffleRuby, but not Windows
258
258
  .
259
259
  .TP
260
260
  \fBmri\fR
261
- Same as \fIruby\fR, but only C Ruby (MRI)
261
+ C Ruby (MRI) only, but not Windows
262
262
  .
263
263
  .TP
264
- \fBmingw\fR
265
- Windows 32 bit \'mingw32\' platform (aka RubyInstaller)
266
- .
267
- .TP
268
- \fBx64_mingw\fR
269
- Windows 64 bit \'mingw32\' platform (aka RubyInstaller x64)
264
+ \fBwindows\fR
265
+ Windows C Ruby (MRI), including RubyInstaller 32\-bit and 64\-bit versions
270
266
  .
271
267
  .TP
272
268
  \fBrbx\fR
@@ -280,15 +276,8 @@ JRuby
280
276
  \fBtruffleruby\fR
281
277
  TruffleRuby
282
278
  .
283
- .TP
284
- \fBmswin\fR
285
- Windows
286
- .
287
279
  .P
288
- You can restrict further by platform and version for all platforms \fIexcept\fR for \fBrbx\fR, \fBjruby\fR, \fBtruffleruby\fR and \fBmswin\fR\.
289
- .
290
- .P
291
- To specify a version in addition to a platform, append the version number without the delimiter to the platform\. For example, to specify that a gem should only be used on platforms with Ruby 2\.3, use:
280
+ On platforms \fBruby\fR, \fBmri\fR, and \fBwindows\fR, you may additionally specify a version by appending the major and minor version numbers without a delimiter\. For example, to specify that a gem should only be used on platform \fBruby\fR version 2\.3, use:
292
281
  .
293
282
  .IP "" 4
294
283
  .
@@ -301,26 +290,7 @@ ruby_23
301
290
  .IP "" 0
302
291
  .
303
292
  .P
304
- The full list of platforms and supported versions includes:
305
- .
306
- .TP
307
- \fBruby\fR
308
- 1\.8, 1\.9, 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
309
- .
310
- .TP
311
- \fBmri\fR
312
- 1\.8, 1\.9, 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
313
- .
314
- .TP
315
- \fBmingw\fR
316
- 1\.8, 1\.9, 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
317
- .
318
- .TP
319
- \fBx64_mingw\fR
320
- 2\.0, 2\.1, 2\.2, 2\.3, 2\.4, 2\.5, 2\.6
321
- .
322
- .P
323
- As with groups, you can specify one or more platforms:
293
+ As with groups (above), you may specify one or more platforms:
324
294
  .
325
295
  .IP "" 4
326
296
  .
@@ -328,7 +298,7 @@ As with groups, you can specify one or more platforms:
328
298
 
329
299
  gem "weakling", platforms: :jruby
330
300
  gem "ruby\-debug", platforms: :mri_18
331
- gem "nokogiri", platforms: [:mri_18, :jruby]
301
+ gem "nokogiri", platforms: [:windows_26, :jruby]
332
302
  .
333
303
  .fi
334
304
  .
@@ -190,47 +190,29 @@ platforms.
190
190
  There are a number of `Gemfile` platforms:
191
191
 
192
192
  * `ruby`:
193
- C Ruby (MRI), Rubinius or TruffleRuby, but `NOT` Windows
193
+ C Ruby (MRI), Rubinius, or TruffleRuby, but not Windows
194
194
  * `mri`:
195
- Same as _ruby_, but only C Ruby (MRI)
196
- * `mingw`:
197
- Windows 32 bit 'mingw32' platform (aka RubyInstaller)
198
- * `x64_mingw`:
199
- Windows 64 bit 'mingw32' platform (aka RubyInstaller x64)
195
+ C Ruby (MRI) only, but not Windows
196
+ * `windows`:
197
+ Windows C Ruby (MRI), including RubyInstaller 32-bit and 64-bit versions
200
198
  * `rbx`:
201
199
  Rubinius
202
200
  * `jruby`:
203
201
  JRuby
204
202
  * `truffleruby`:
205
203
  TruffleRuby
206
- * `mswin`:
207
- Windows
208
204
 
209
- You can restrict further by platform and version for all platforms *except* for
210
- `rbx`, `jruby`, `truffleruby` and `mswin`.
211
-
212
- To specify a version in addition to a platform, append the version number without
213
- the delimiter to the platform. For example, to specify that a gem should only be
214
- used on platforms with Ruby 2.3, use:
205
+ On platforms `ruby`, `mri`, and `windows`, you may additionally specify a version
206
+ by appending the major and minor version numbers without a delimiter. For example,
207
+ to specify that a gem should only be used on platform `ruby` version 2.3, use:
215
208
 
216
209
  ruby_23
217
210
 
218
- The full list of platforms and supported versions includes:
219
-
220
- * `ruby`:
221
- 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
222
- * `mri`:
223
- 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
224
- * `mingw`:
225
- 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
226
- * `x64_mingw`:
227
- 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
228
-
229
- As with groups, you can specify one or more platforms:
211
+ As with groups (above), you may specify one or more platforms:
230
212
 
231
213
  gem "weakling", platforms: :jruby
232
214
  gem "ruby-debug", platforms: :mri_18
233
- gem "nokogiri", platforms: [:mri_18, :jruby]
215
+ gem "nokogiri", platforms: [:windows_26, :jruby]
234
216
 
235
217
  All operations involving groups ([`bundle install`](bundle-install.1.html), `Bundler.setup`,
236
218
  `Bundler.require`) behave exactly the same as if any groups not
@@ -6,9 +6,11 @@ bundle-cache(1) bundle-cache.1
6
6
  bundle-check(1) bundle-check.1
7
7
  bundle-clean(1) bundle-clean.1
8
8
  bundle-config(1) bundle-config.1
9
+ bundle-console(1) bundle-console.1
9
10
  bundle-doctor(1) bundle-doctor.1
10
11
  bundle-exec(1) bundle-exec.1
11
12
  bundle-gem(1) bundle-gem.1
13
+ bundle-help(1) bundle-help.1
12
14
  bundle-info(1) bundle-info.1
13
15
  bundle-init(1) bundle-init.1
14
16
  bundle-inject(1) bundle-inject.1
@@ -23,4 +25,5 @@ bundle-pristine(1) bundle-pristine.1
23
25
  bundle-remove(1) bundle-remove.1
24
26
  bundle-show(1) bundle-show.1
25
27
  bundle-update(1) bundle-update.1
28
+ bundle-version(1) bundle-version.1
26
29
  bundle-viz(1) bundle-viz.1
@@ -2,8 +2,11 @@
2
2
 
3
3
  module Bundler
4
4
  module FetchMetadata
5
+ # A fallback is included because the original version of the specification
6
+ # API didn't include that field, so some marshalled specs in the index have it
7
+ # set to +nil+.
5
8
  def matches_current_ruby?
6
- @required_ruby_version ||= _remote_specification.required_ruby_version
9
+ @required_ruby_version ||= _remote_specification.required_ruby_version || Gem::Requirement.default
7
10
 
8
11
  super
9
12
  end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Bundler
4
+ class Resolver
5
+ class Base
6
+ def initialize(base, additional_base_requirements)
7
+ @base = base
8
+ @additional_base_requirements = additional_base_requirements
9
+ end
10
+
11
+ def [](name)
12
+ @base[name]
13
+ end
14
+
15
+ def delete(spec)
16
+ @base.delete(spec)
17
+ end
18
+
19
+ def base_requirements
20
+ @base_requirements ||= build_base_requirements
21
+ end
22
+
23
+ def unlock_deps(deps)
24
+ exact, lower_bound = deps.partition(&:specific?)
25
+
26
+ exact.each do |exact_dep|
27
+ @base.delete_by_name_and_version(exact_dep.name, exact_dep.requirement.requirements.first.last)
28
+ end
29
+
30
+ lower_bound.each do |lower_bound_dep|
31
+ @additional_base_requirements.delete(lower_bound_dep)
32
+ end
33
+
34
+ @base_requirements = nil
35
+ end
36
+
37
+ private
38
+
39
+ def build_base_requirements
40
+ base_requirements = {}
41
+ @base.each do |ls|
42
+ dep = Dependency.new(ls.name, ls.version)
43
+ base_requirements[ls.name] = DepProxy.get_proxy(dep, ls.platform)
44
+ end
45
+ @additional_base_requirements.each {|d| base_requirements[d.name] = d }
46
+ base_requirements
47
+ end
48
+ end
49
+ end
50
+ end