summaryrefslogtreecommitdiff
path: root/lib/rubygems/request_set.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/request_set.rb')
-rw-r--r--lib/rubygems/request_set.rb15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/rubygems/request_set.rb b/lib/rubygems/request_set.rb
index 42d457063f..d91a39cb22 100644
--- a/lib/rubygems/request_set.rb
+++ b/lib/rubygems/request_set.rb
@@ -2,6 +2,7 @@ require 'rubygems'
require 'rubygems/dependency'
require 'rubygems/dependency_list'
require 'rubygems/installer'
+require 'rubygems/resolver'
require 'tsort'
##
@@ -146,7 +147,15 @@ class Gem::RequestSet
resolve
- install options, &block
+ if options[:explain]
+ puts "Gems to install:"
+
+ specs.map { |s| s.full_name }.sort.each do |s|
+ puts " #{s}"
+ end
+ else
+ install options, &block
+ end
end
def install_into dir, force = true, options = {}
@@ -201,7 +210,7 @@ class Gem::RequestSet
# Resolve the requested dependencies and return an Array of Specification
# objects to be activated.
- def resolve set = Gem::Resolver::IndexSet.new
+ def resolve set = Gem::Resolver::BestSet.new
@sets << set
@sets << @git_set
@sets << @vendor_set
@@ -253,7 +262,7 @@ class Gem::RequestSet
end
else
unless @soft_missing
- raise Gem::DependencyError, "Unresolved depedency found during sorting - #{dep}"
+ raise Gem::DependencyError, "Unresolved dependency found during sorting - #{dep} (requested by #{node.spec.full_name})"
end
end
end