diff options
author | Carl Lerche <carllerche@mac.com> | 2009-08-17 10:32:33 -0700 |
---|---|---|
committer | Yehuda Katz + Carl Lerche <ykatz+clerche@engineyard.com> | 2009-08-17 12:26:37 -0700 |
commit | 9e93ceb796ea0c3c579f727bfb50ce61dcff9495 (patch) | |
tree | 2da027ffe489a01b0236f74d798d102b757d672d /lib/bundler/resolver.rb | |
parent | 3cd1af0c62966a0df9fd92ddac48dc0e1887000f (diff) | |
download | bundler-9e93ceb796ea0c3c579f727bfb50ce61dcff9495.tar.gz |
Refactoring -- Decoupling gem source logic from finder
Diffstat (limited to 'lib/bundler/resolver.rb')
-rw-r--r-- | lib/bundler/resolver.rb | 14 |
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) |