summaryrefslogtreecommitdiff
path: root/lib/bundler/resolver.rb
diff options
context:
space:
mode:
authorCarl Lerche <carllerche@mac.com>2009-08-17 10:32:33 -0700
committerYehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com>2009-08-17 12:26:37 -0700
commit9e93ceb796ea0c3c579f727bfb50ce61dcff9495 (patch)
tree2da027ffe489a01b0236f74d798d102b757d672d /lib/bundler/resolver.rb
parent3cd1af0c62966a0df9fd92ddac48dc0e1887000f (diff)
downloadbundler-9e93ceb796ea0c3c579f727bfb50ce61dcff9495.tar.gz
Refactoring -- Decoupling gem source logic from finder
Diffstat (limited to 'lib/bundler/resolver.rb')
-rw-r--r--lib/bundler/resolver.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/bundler/resolver.rb b/lib/bundler/resolver.rb
index 0966a877f6..309e4ac00d 100644
--- a/lib/bundler/resolver.rb
+++ b/lib/bundler/resolver.rb
@@ -24,13 +24,25 @@ module Bundler
attr_reader :errors
+ # Figures out the best possible configuration of gems that satisfies
+ # the list of passed dependencies and any child dependencies without
+ # causing any gem activation errors.
+ #
+ # ==== Parameters
+ # *dependencies<Gem::Dependency>:: The list of dependencies to resolve
+ #
+ # ==== Returns
+ # <GemBundle>,nil:: If the list of dependencies can be resolved, a
+ # collection of gemspecs is returned. Otherwise, nil is returned.
def self.resolve(requirements, index = Gem.source_index)
+ Bundler.logger.info "Calculating dependencies..."
+
resolver = new(index)
result = catch(:success) do
resolver.resolve(requirements, {})
nil
end
- result && result.values
+ result && GemBundle.new(result.values)
end
def initialize(index)