diff options
author | David RodrÃguez <deivid.rodriguez@riseup.net> | 2021-12-14 15:56:03 +0100 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2021-12-17 16:35:18 +0900 |
commit | c710cdb905a58b4ef0c7b5a9a8e867b382ccfd66 (patch) | |
tree | 054076aa06e579e7b054fa19097d94dfa5ee3a19 /lib | |
parent | af4b4fd19b7972adc165e70e9d41ad7e14c9a235 (diff) |
[rubygems/rubygems] Improve error message if only platform doesn't match
https://github.com/rubygems/rubygems/commit/077e3c2e4d
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bundler/resolver.rb | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index 8830621e0e..dfea95e30a 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -264,13 +264,23 @@ module Bundler else source = source_for(name) specs = source.specs.search(name) + matching_part = name + requirement_label = SharedHelpers.pretty_dependency(requirement) cache_message = begin " or in gems cached in #{Bundler.settings.app_cache_path}" if Bundler.app_cache.exist? rescue GemfileNotFound nil end - message = String.new("Could not find gem '#{SharedHelpers.pretty_dependency(requirement)}' in #{source}#{cache_message}.\n") - message << "The source contains the following gems matching '#{name}': #{specs.map(&:full_name).join(", ")}" if specs.any? + specs_matching_requirement = specs.select {| spec| requirement.matches_spec?(spec) } + + if specs_matching_requirement.any? + specs = specs_matching_requirement + matching_part = requirement_label + requirement_label = "#{requirement_label} #{requirement.__platform}" + end + + message = String.new("Could not find gem '#{requirement_label}' in #{source}#{cache_message}.\n") + message << "The source contains the following gems matching '#{matching_part}': #{specs.map(&:full_name).join(", ")}" if specs.any? end raise GemNotFound, message end |