diff options
author | James Wen <jrw2175@columbia.edu> | 2016-02-22 00:20:31 -0500 |
---|---|---|
committer | James Wen <jrw2175@columbia.edu> | 2016-02-22 00:21:06 -0500 |
commit | 2ffae987ae0a91305509365d6192c4d473245912 (patch) | |
tree | fc4c2743907711667798d8a0f77123d0aa8a3522 /lib/bundler/resolver.rb | |
parent | 1328c77a2ae4ac68828f08fad4ff3876c344fc61 (diff) | |
download | bundler-2ffae987ae0a91305509365d6192c4d473245912.tar.gz |
Add platform info to error message for different platform in gemspec than Gemfile.lock
- Closes #4259
Diffstat (limited to 'lib/bundler/resolver.rb')
-rw-r--r-- | lib/bundler/resolver.rb | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb index d22ab34e98..442c72c7f2 100644 --- a/lib/bundler/resolver.rb +++ b/lib/bundler/resolver.rb @@ -341,10 +341,11 @@ module Bundler "try passing them all to `bundle update`" elsif requirement.source name = requirement.name - versions = @source_requirements[name][name].map(&:version) - message = String.new("Could not find gem '#{requirement}' in #{requirement.source}.\n") - message << if versions.any? - "Source contains '#{name}' at: #{versions.join(", ")}" + specs = @source_requirements[name][name] + versions_with_platforms = specs.map {|s| [s.version, s.platform] } + message = String.new("Could not find gem '#{requirement}' in #{requirement.source}.\n") + message << if versions_with_platforms.any? + "Source contains '#{name}' at: #{formatted_versions_with_platforms(versions_with_platforms)}" else "Source does not contain any versions of '#{requirement}'" end @@ -355,5 +356,15 @@ module Bundler raise GemNotFound, message end end + + def formatted_versions_with_platforms(versions_with_platforms) + version_platform_strs = versions_with_platforms.map do |vwp| + version = vwp.first + platform = vwp.last + version_platform_str = String.new(version.to_s) + version_platform_str << " #{platform}" unless platform.nil? + end + version_platform_strs.join(",") + end end end |