rubygems-update 3.2.17 → 3.2.18

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/Manifest.txt +2 -0
  4. data/Rakefile +1 -6
  5. data/bundler/CHANGELOG.md +16 -0
  6. data/bundler/bundler.gemspec +2 -3
  7. data/bundler/lib/bundler.rb +1 -0
  8. data/bundler/lib/bundler/build_metadata.rb +2 -2
  9. data/bundler/lib/bundler/cli.rb +13 -33
  10. data/bundler/lib/bundler/cli/outdated.rb +7 -10
  11. data/bundler/lib/bundler/definition.rb +14 -75
  12. data/bundler/lib/bundler/feature_flag.rb +0 -1
  13. data/bundler/lib/bundler/friendly_errors.rb +1 -1
  14. data/bundler/lib/bundler/index.rb +1 -2
  15. data/bundler/lib/bundler/man/bundle-add.1 +1 -1
  16. data/bundler/lib/bundler/man/bundle-binstubs.1 +1 -1
  17. data/bundler/lib/bundler/man/bundle-cache.1 +1 -1
  18. data/bundler/lib/bundler/man/bundle-check.1 +1 -1
  19. data/bundler/lib/bundler/man/bundle-clean.1 +1 -1
  20. data/bundler/lib/bundler/man/bundle-config.1 +1 -7
  21. data/bundler/lib/bundler/man/bundle-config.1.ronn +0 -8
  22. data/bundler/lib/bundler/man/bundle-doctor.1 +1 -1
  23. data/bundler/lib/bundler/man/bundle-exec.1 +1 -1
  24. data/bundler/lib/bundler/man/bundle-gem.1 +1 -1
  25. data/bundler/lib/bundler/man/bundle-info.1 +1 -1
  26. data/bundler/lib/bundler/man/bundle-init.1 +1 -1
  27. data/bundler/lib/bundler/man/bundle-inject.1 +1 -1
  28. data/bundler/lib/bundler/man/bundle-install.1 +1 -1
  29. data/bundler/lib/bundler/man/bundle-list.1 +1 -1
  30. data/bundler/lib/bundler/man/bundle-lock.1 +1 -1
  31. data/bundler/lib/bundler/man/bundle-open.1 +1 -1
  32. data/bundler/lib/bundler/man/bundle-outdated.1 +1 -1
  33. data/bundler/lib/bundler/man/bundle-platform.1 +1 -1
  34. data/bundler/lib/bundler/man/bundle-pristine.1 +1 -1
  35. data/bundler/lib/bundler/man/bundle-remove.1 +1 -1
  36. data/bundler/lib/bundler/man/bundle-show.1 +1 -1
  37. data/bundler/lib/bundler/man/bundle-update.1 +1 -1
  38. data/bundler/lib/bundler/man/bundle-viz.1 +1 -1
  39. data/bundler/lib/bundler/man/bundle.1 +1 -1
  40. data/bundler/lib/bundler/man/gemfile.5 +1 -1
  41. data/bundler/lib/bundler/plugin/api/source.rb +14 -0
  42. data/bundler/lib/bundler/resolver.rb +13 -96
  43. data/bundler/lib/bundler/resolver/spec_group.rb +0 -24
  44. data/bundler/lib/bundler/rubygems_ext.rb +2 -2
  45. data/bundler/lib/bundler/settings.rb +0 -1
  46. data/bundler/lib/bundler/source.rb +9 -0
  47. data/bundler/lib/bundler/source/rubygems.rb +15 -4
  48. data/bundler/lib/bundler/source/rubygems_aggregate.rb +64 -0
  49. data/bundler/lib/bundler/source_list.rb +29 -10
  50. data/bundler/lib/bundler/source_map.rb +58 -0
  51. data/bundler/lib/bundler/templates/newgem/newgem.gemspec.tt +1 -1
  52. data/bundler/lib/bundler/version.rb +1 -1
  53. data/lib/rubygems.rb +1 -1
  54. data/lib/rubygems/ext/ext_conf_builder.rb +4 -4
  55. data/lib/rubygems/specification.rb +0 -2
  56. data/lib/rubygems/test_case.rb +102 -18
  57. data/rubygems-update.gemspec +1 -1
  58. data/test/rubygems/test_bundled_ca.rb +2 -2
  59. data/test/rubygems/test_deprecate.rb +3 -3
  60. data/test/rubygems/test_gem.rb +33 -31
  61. data/test/rubygems/test_gem_bundler_version_finder.rb +2 -2
  62. data/test/rubygems/test_gem_command.rb +1 -1
  63. data/test/rubygems/test_gem_command_manager.rb +5 -5
  64. data/test/rubygems/test_gem_commands_build_command.rb +10 -10
  65. data/test/rubygems/test_gem_commands_cert_command.rb +36 -36
  66. data/test/rubygems/test_gem_commands_check_command.rb +5 -5
  67. data/test/rubygems/test_gem_commands_cleanup_command.rb +24 -24
  68. data/test/rubygems/test_gem_commands_contents_command.rb +3 -3
  69. data/test/rubygems/test_gem_commands_dependency_command.rb +2 -2
  70. data/test/rubygems/test_gem_commands_environment_command.rb +1 -1
  71. data/test/rubygems/test_gem_commands_fetch_command.rb +9 -9
  72. data/test/rubygems/test_gem_commands_help_command.rb +1 -1
  73. data/test/rubygems/test_gem_commands_install_command.rb +60 -60
  74. data/test/rubygems/test_gem_commands_list_command.rb +1 -1
  75. data/test/rubygems/test_gem_commands_lock_command.rb +1 -1
  76. data/test/rubygems/test_gem_commands_open_command.rb +8 -9
  77. data/test/rubygems/test_gem_commands_owner_command.rb +3 -3
  78. data/test/rubygems/test_gem_commands_pristine_command.rb +14 -14
  79. data/test/rubygems/test_gem_commands_push_command.rb +6 -6
  80. data/test/rubygems/test_gem_commands_query_command.rb +7 -7
  81. data/test/rubygems/test_gem_commands_server_command.rb +2 -2
  82. data/test/rubygems/test_gem_commands_setup_command.rb +21 -21
  83. data/test/rubygems/test_gem_commands_signin_command.rb +6 -6
  84. data/test/rubygems/test_gem_commands_sources_command.rb +5 -5
  85. data/test/rubygems/test_gem_commands_specification_command.rb +6 -6
  86. data/test/rubygems/test_gem_commands_uninstall_command.rb +4 -4
  87. data/test/rubygems/test_gem_commands_unpack_command.rb +2 -2
  88. data/test/rubygems/test_gem_commands_update_command.rb +10 -10
  89. data/test/rubygems/test_gem_commands_which_command.rb +3 -3
  90. data/test/rubygems/test_gem_commands_yank_command.rb +1 -1
  91. data/test/rubygems/test_gem_config_file.rb +9 -9
  92. data/test/rubygems/test_gem_dependency.rb +6 -6
  93. data/test/rubygems/test_gem_dependency_installer.rb +4 -4
  94. data/test/rubygems/test_gem_doctor.rb +30 -30
  95. data/test/rubygems/test_gem_ext_builder.rb +20 -20
  96. data/test/rubygems/test_gem_ext_cmake_builder.rb +4 -4
  97. data/test/rubygems/test_gem_ext_configure_builder.rb +4 -4
  98. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +14 -13
  99. data/test/rubygems/test_gem_ext_rake_builder.rb +1 -1
  100. data/test/rubygems/test_gem_gemcutter_utilities.rb +8 -8
  101. data/test/rubygems/test_gem_install_update_options.rb +9 -9
  102. data/test/rubygems/test_gem_installer.rb +142 -140
  103. data/test/rubygems/test_gem_local_remote_options.rb +1 -1
  104. data/test/rubygems/test_gem_package.rb +48 -48
  105. data/test/rubygems/test_gem_package_old.rb +9 -9
  106. data/test/rubygems/test_gem_package_tar_header.rb +5 -5
  107. data/test/rubygems/test_gem_package_tar_reader_entry.rb +8 -8
  108. data/test/rubygems/test_gem_package_tar_writer.rb +18 -20
  109. data/test/rubygems/test_gem_package_task.rb +2 -2
  110. data/test/rubygems/test_gem_path_support.rb +1 -1
  111. data/test/rubygems/test_gem_rdoc.rb +9 -9
  112. data/test/rubygems/test_gem_remote_fetcher.rb +17 -18
  113. data/test/rubygems/test_gem_request.rb +2 -2
  114. data/test/rubygems/test_gem_request_connection_pools.rb +1 -1
  115. data/test/rubygems/test_gem_request_set.rb +15 -14
  116. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +16 -16
  117. data/test/rubygems/test_gem_request_set_lockfile.rb +3 -3
  118. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +3 -3
  119. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +4 -4
  120. data/test/rubygems/test_gem_requirement.rb +13 -13
  121. data/test/rubygems/test_gem_resolver.rb +11 -11
  122. data/test/rubygems/test_gem_resolver_best_set.rb +1 -1
  123. data/test/rubygems/test_gem_resolver_git_set.rb +1 -1
  124. data/test/rubygems/test_gem_resolver_git_specification.rb +2 -2
  125. data/test/rubygems/test_gem_resolver_index_specification.rb +1 -1
  126. data/test/rubygems/test_gem_resolver_installer_set.rb +4 -4
  127. data/test/rubygems/test_gem_resolver_local_specification.rb +1 -1
  128. data/test/rubygems/test_gem_resolver_specification.rb +1 -1
  129. data/test/rubygems/test_gem_resolver_vendor_set.rb +2 -2
  130. data/test/rubygems/test_gem_security.rb +5 -5
  131. data/test/rubygems/test_gem_security_policy.rb +27 -27
  132. data/test/rubygems/test_gem_security_signer.rb +7 -7
  133. data/test/rubygems/test_gem_security_trust_dir.rb +4 -4
  134. data/test/rubygems/test_gem_server.rb +2 -2
  135. data/test/rubygems/test_gem_silent_ui.rb +9 -9
  136. data/test/rubygems/test_gem_source.rb +2 -2
  137. data/test/rubygems/test_gem_source_fetch_problem.rb +1 -1
  138. data/test/rubygems/test_gem_source_git.rb +11 -11
  139. data/test/rubygems/test_gem_source_specific_file.rb +1 -1
  140. data/test/rubygems/test_gem_spec_fetcher.rb +1 -1
  141. data/test/rubygems/test_gem_specification.rb +83 -103
  142. data/test/rubygems/test_gem_stream_ui.rb +1 -1
  143. data/test/rubygems/test_gem_stub_specification.rb +4 -4
  144. data/test/rubygems/test_gem_uninstaller.rb +16 -16
  145. data/test/rubygems/test_gem_util.rb +8 -6
  146. data/test/rubygems/test_gem_version.rb +4 -13
  147. data/test/rubygems/test_kernel.rb +4 -4
  148. data/test/rubygems/test_project_sanity.rb +1 -1
  149. data/test/rubygems/test_remote_fetch_error.rb +1 -1
  150. data/test/rubygems/test_require.rb +13 -13
  151. data/test/test_changelog_generator.rb +1 -2
  152. metadata +5 -3
@@ -47,10 +47,6 @@ configuration only from the local application.
47
47
  Executing bundle with the `BUNDLE_IGNORE_CONFIG` environment variable set will
48
48
  cause it to ignore all configuration.
49
49
 
50
- Executing `bundle config set --local disable_multisource true` upgrades the warning about
51
- the Gemfile containing multiple primary sources to an error. Executing `bundle
52
- config unset disable_multisource` downgrades this error to a warning.
53
-
54
50
  ## REMEMBERING OPTIONS
55
51
 
56
52
  Flags passed to `bundle install` or the Bundler runtime, such as `--path foo` or
@@ -178,10 +174,6 @@ learn more about their operation in [bundle install(1)](bundle-install.1.html).
178
174
  * `disable_local_revision_check` (`BUNDLE_DISABLE_LOCAL_REVISION_CHECK`):
179
175
  Allow Bundler to use a local git override without checking if the revision
180
176
  present in the lockfile is present in the repository.
181
- * `disable_multisource` (`BUNDLE_DISABLE_MULTISOURCE`):
182
- When set, Gemfiles containing multiple sources will produce errors
183
- instead of warnings.
184
- Use `bundle config unset disable_multisource` to unset.
185
177
  * `disable_shared_gems` (`BUNDLE_DISABLE_SHARED_GEMS`):
186
178
  Stop Bundler from accessing gems installed to RubyGems' normal location.
187
179
  * `disable_version_check` (`BUNDLE_DISABLE_VERSION_CHECK`):
@@ -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\-DOCTOR" "1" "April 2021" "" ""
4
+ .TH "BUNDLE\-DOCTOR" "1" "May 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-doctor\fR \- Checks the bundle for common problems
@@ -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\-EXEC" "1" "April 2021" "" ""
4
+ .TH "BUNDLE\-EXEC" "1" "May 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-exec\fR \- Execute a command in the context of 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\-GEM" "1" "April 2021" "" ""
4
+ .TH "BUNDLE\-GEM" "1" "May 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\-gem\fR \- Generate a project skeleton for creating a rubygem
@@ -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" "April 2021" "" ""
4
+ .TH "BUNDLE\-INFO" "1" "May 2021" "" ""
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" "April 2021" "" ""
4
+ .TH "BUNDLE\-INIT" "1" "May 2021" "" ""
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" "April 2021" "" ""
4
+ .TH "BUNDLE\-INJECT" "1" "May 2021" "" ""
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" "April 2021" "" ""
4
+ .TH "BUNDLE\-INSTALL" "1" "May 2021" "" ""
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" "April 2021" "" ""
4
+ .TH "BUNDLE\-LIST" "1" "May 2021" "" ""
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" "April 2021" "" ""
4
+ .TH "BUNDLE\-LOCK" "1" "May 2021" "" ""
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" "April 2021" "" ""
4
+ .TH "BUNDLE\-OPEN" "1" "May 2021" "" ""
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" "April 2021" "" ""
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
@@ -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" "April 2021" "" ""
4
+ .TH "BUNDLE\-PLATFORM" "1" "May 2021" "" ""
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\-PRISTINE" "1" "April 2021" "" ""
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
@@ -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" "April 2021" "" ""
4
+ .TH "BUNDLE\-REMOVE" "1" "May 2021" "" ""
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" "April 2021" "" ""
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
@@ -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" "April 2021" "" ""
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
@@ -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" "April 2021" "" ""
4
+ .TH "BUNDLE\-VIZ" "1" "May 2021" "" ""
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" "April 2021" "" ""
4
+ .TH "BUNDLE" "1" "May 2021" "" ""
5
5
  .
6
6
  .SH "NAME"
7
7
  \fBbundle\fR \- Ruby Dependency Management
@@ -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" "April 2021" "" ""
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
@@ -244,6 +244,20 @@ module Bundler
244
244
  specs.unmet_dependency_names
245
245
  end
246
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
+
247
261
  # Note: Do not override if you don't know what you are doing.
248
262
  def can_lock?(spec)
249
263
  spec.source == self
@@ -21,17 +21,11 @@ module Bundler
21
21
  base = SpecSet.new(base) unless base.is_a?(SpecSet)
22
22
  resolver = new(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms)
23
23
  result = resolver.start(requirements)
24
- SpecSet.new(result)
24
+ SpecSet.new(result).for(requirements.reject{|dep| dep.name.end_with?("\0") })
25
25
  end
26
26
 
27
27
  def initialize(source_requirements, base, gem_version_promoter, additional_base_requirements, platforms)
28
28
  @source_requirements = source_requirements
29
-
30
- @index_requirements = source_requirements.each_with_object({}) do |source_requirement, index_requirements|
31
- name, source = source_requirement
32
- index_requirements[name] = name == :global ? source : source.specs
33
- end
34
-
35
29
  @base = base
36
30
  @resolver = Molinillo::Resolver.new(self, self)
37
31
  @search_for = {}
@@ -45,10 +39,6 @@ module Bundler
45
39
  @resolving_only_for_ruby = platforms == [Gem::Platform::RUBY]
46
40
  @gem_version_promoter = gem_version_promoter
47
41
  @use_gvp = Bundler.feature_flag.use_gem_version_promoter_for_major_updates? || !@gem_version_promoter.major?
48
- @no_aggregate_global_source = @source_requirements[:global].nil?
49
-
50
- @variant_specific_names = []
51
- @generic_names = ["Ruby\0", "RubyGems\0"]
52
42
  end
53
43
 
54
44
  def start(requirements)
@@ -58,7 +48,6 @@ module Bundler
58
48
  verify_gemfile_dependencies_are_found!(requirements)
59
49
  dg = @resolver.resolve(requirements, @base_dg)
60
50
  dg.
61
- tap {|resolved| validate_resolved_specs!(resolved) }.
62
51
  map(&:payload).
63
52
  reject {|sg| sg.name.end_with?("\0") }.
64
53
  map(&:to_specs).
@@ -112,24 +101,14 @@ module Bundler
112
101
  include Molinillo::SpecificationProvider
113
102
 
114
103
  def dependencies_for(specification)
115
- all_dependencies = specification.dependencies_for_activated_platforms
116
-
117
- if @variant_specific_names.include?(specification.name)
118
- @variant_specific_names |= all_dependencies.map(&:name) - @generic_names
119
- else
120
- generic_names, variant_specific_names = specification.partitioned_dependency_names_for_activated_platforms
121
- @variant_specific_names |= variant_specific_names - @generic_names
122
- @generic_names |= generic_names
123
- end
124
-
125
- all_dependencies
104
+ specification.dependencies_for_activated_platforms
126
105
  end
127
106
 
128
107
  def search_for(dependency_proxy)
129
108
  platform = dependency_proxy.__platform
130
109
  dependency = dependency_proxy.dep
131
110
  name = dependency.name
132
- search_result = @search_for[dependency_proxy] ||= begin
111
+ @search_for[dependency_proxy] ||= begin
133
112
  results = results_for(dependency, @base[name])
134
113
 
135
114
  if vertex = @base_dg.vertex_named(name)
@@ -181,35 +160,14 @@ module Bundler
181
160
  @gem_version_promoter.sort_versions(dependency, spec_groups)
182
161
  end
183
162
  end
184
-
185
- unless search_result.empty?
186
- specific_dependency = @variant_specific_names.include?(name)
187
- return search_result unless specific_dependency
188
-
189
- search_result.each do |sg|
190
- if @generic_names.include?(name)
191
- @variant_specific_names -= [name]
192
- sg.activate_all_platforms!
193
- else
194
- sg.activate_platform!(platform)
195
- end
196
- end
197
- end
198
-
199
- search_result
200
163
  end
201
164
 
202
165
  def index_for(dependency)
203
- source = @index_requirements[dependency.name]
204
- if source
205
- source
206
- elsif @no_aggregate_global_source
207
- Index.build do |idx|
208
- dependency.all_sources.each {|s| idx.add_source(s.specs) }
209
- end
210
- else
211
- @index_requirements[:global]
212
- end
166
+ source_for(dependency.name).specs
167
+ end
168
+
169
+ def source_for(name)
170
+ @source_requirements[name] || @source_requirements[:default]
213
171
  end
214
172
 
215
173
  def results_for(dependency, base)
@@ -240,23 +198,10 @@ module Bundler
240
198
  dependencies.map(&:dep) == other_dependencies.map(&:dep)
241
199
  end
242
200
 
243
- def relevant_sources_for_vertex(vertex)
244
- if vertex.root?
245
- [@source_requirements[vertex.name]]
246
- elsif @no_aggregate_global_source
247
- vertex.recursive_predecessors.map do |v|
248
- @source_requirements[v.name]
249
- end.compact << @source_requirements[:default]
250
- else
251
- []
252
- end
253
- end
254
-
255
201
  def sort_dependencies(dependencies, activated, conflicts)
256
202
  dependencies.sort_by do |dependency|
257
203
  name = name_for(dependency)
258
204
  vertex = activated.vertex_named(name)
259
- dependency.all_sources = relevant_sources_for_vertex(vertex)
260
205
  [
261
206
  @base_dg.vertex_named(name) ? 0 : 1,
262
207
  vertex.payload ? 0 : 1,
@@ -398,7 +343,7 @@ module Bundler
398
343
  if other_bundler_required
399
344
  o << "\n\n"
400
345
 
401
- candidate_specs = @index_requirements[:default_bundler].search(conflict_dependency)
346
+ candidate_specs = source_for(:default_bundler).specs.search(conflict_dependency)
402
347
  if candidate_specs.any?
403
348
  target_version = candidate_specs.last.version
404
349
  new_command = [File.basename($PROGRAM_NAME), "_#{target_version}_", *ARGV].join(" ")
@@ -415,11 +360,7 @@ module Bundler
415
360
  elsif !conflict.existing
416
361
  o << "\n"
417
362
 
418
- relevant_sources = if conflict.requirement.source
419
- [conflict.requirement.source]
420
- else
421
- conflict.requirement.all_sources
422
- end.compact.map(&:to_s).uniq.sort
363
+ relevant_source = conflict.requirement.source || source_for(name)
423
364
 
424
365
  metadata_requirement = name.end_with?("\0")
425
366
 
@@ -432,12 +373,10 @@ module Bundler
432
373
  end
433
374
  o << " "
434
375
 
435
- o << if relevant_sources.empty?
436
- "in any of the sources.\n"
437
- elsif metadata_requirement
438
- "is not available in #{relevant_sources.join(" or ")}"
376
+ o << if metadata_requirement
377
+ "is not available in #{relevant_source}"
439
378
  else
440
- "in any of the relevant sources:\n #{relevant_sources * "\n "}\n"
379
+ "in #{relevant_source}.\n"
441
380
  end
442
381
  end
443
382
  end,
@@ -451,27 +390,5 @@ module Bundler
451
390
  end
452
391
  )
453
392
  end
454
-
455
- def validate_resolved_specs!(resolved_specs)
456
- resolved_specs.each do |v|
457
- name = v.name
458
- sources = relevant_sources_for_vertex(v)
459
- next unless sources.any?
460
- if default_index = sources.index(@source_requirements[:default])
461
- sources.delete_at(default_index)
462
- end
463
- sources.reject! {|s| s.specs.search(name).empty? }
464
- sources.uniq!
465
- next if sources.size <= 1
466
-
467
- msg = ["The gem '#{name}' was found in multiple relevant sources."]
468
- msg.concat sources.map {|s| " * #{s}" }.sort
469
- msg << "You #{@no_aggregate_global_source ? :must : :should} add this gem to the source block for the source you wish it to be installed from."
470
- msg = msg.join("\n")
471
-
472
- raise SecurityError, msg if @no_aggregate_global_source
473
- Bundler.ui.warn "Warning: #{msg}"
474
- end
475
- end
476
393
  end
477
394
  end
@@ -21,14 +21,10 @@ module Bundler
21
21
  @version = exemplary_spec.version
22
22
  @source = exemplary_spec.source
23
23
 
24
- @all_platforms = relevant_platforms
25
24
  @activated_platforms = relevant_platforms
26
25
  @dependencies = Hash.new do |dependencies, platforms|
27
26
  dependencies[platforms] = dependencies_for(platforms)
28
27
  end
29
- @partitioned_dependency_names = Hash.new do |partitioned_dependency_names, platforms|
30
- partitioned_dependency_names[platforms] = partitioned_dependency_names_for(platforms)
31
- end
32
28
  @specs = specs
33
29
  end
34
30
 
@@ -45,14 +41,6 @@ module Bundler
45
41
  end.flatten.compact.uniq
46
42
  end
47
43
 
48
- def activate_platform!(platform)
49
- self.activated_platforms = [platform]
50
- end
51
-
52
- def activate_all_platforms!
53
- self.activated_platforms = @all_platforms
54
- end
55
-
56
44
  def to_s
57
45
  activated_platforms_string = sorted_activated_platforms.join(", ")
58
46
  "#{name} (#{version}) (#{activated_platforms_string})"
@@ -62,10 +50,6 @@ module Bundler
62
50
  @dependencies[activated_platforms]
63
51
  end
64
52
 
65
- def partitioned_dependency_names_for_activated_platforms
66
- @partitioned_dependency_names[activated_platforms]
67
- end
68
-
69
53
  def ==(other)
70
54
  return unless other.is_a?(SpecGroup)
71
55
  name == other.name &&
@@ -100,14 +84,6 @@ module Bundler
100
84
  end.flatten
101
85
  end
102
86
 
103
- def partitioned_dependency_names_for(platforms)
104
- return @dependencies[platforms].map(&:name), [] if platforms.size == 1
105
-
106
- @dependencies[platforms].partition do |dep_proxy|
107
- @dependencies[platforms].count {|dp| dp.dep == dep_proxy.dep } == platforms.size
108
- end.map {|deps| deps.map(&:name) }
109
- end
110
-
111
87
  def __dependencies(platform)
112
88
  dependencies = []
113
89
  @specs[platform].first.dependencies.each do |dep|