summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Arko <andre@arko.net>2010-06-22 11:16:49 -0700
committerAndre Arko <andre@arko.net>2010-06-22 11:16:49 -0700
commitedd50575739bd398cd13b8ea5b5f3c014a3ede47 (patch)
tree3cfd9c31173e19dd850a4b9a1d6e54af5ffa5f35
parentc9e25126dd8b8c9b08203d21625ffc3cf248674c (diff)
downloadbundler-edd50575739bd398cd13b8ea5b5f3c014a3ede47.tar.gz
Give a useful error if your bundler is older than a gem requires
-rw-r--r--lib/bundler/resolver.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb
index fddae44470..7487c9878c 100644
--- a/lib/bundler/resolver.rb
+++ b/lib/bundler/resolver.rb
@@ -39,7 +39,11 @@ module Bundler
result = catch(:success) do
resolver.resolve(requirements, {})
output = resolver.errors.inject("") do |o, (conflict, (origin, requirement))|
- if origin
+ if conflict == "bundler"
+ o << (requirement.required_by.first ? "Gem #{requirement.required_by.first}" : "The Gemfile")
+ o << " requires #{requirement}.\n\n"
+ o << "Upgrade to #{requirement} to continue installing this Gemfile."
+ elsif origin
o << " Conflict on: #{conflict.inspect}:\n"
o << " * #{conflict} (#{origin.version}) activated by #{origin.required_by.first}\n"
o << " * #{requirement} required"
@@ -52,7 +56,6 @@ module Bundler
o << " #{requirement} not found in any of the sources\n"
o << " required by #{requirement.required_by.first}\n"
end
- o << " All possible versions of origin requirements conflict."
end
raise VersionConflict, "No compatible versions could be found for required dependencies:\n #{output}"
nil