class Bundler::Resolver

def self.resolve(requirements, index, source_requirements = {}, base = [])

collection of gemspecs is returned. Otherwise, nil is returned.
,nil:: If the list of dependencies can be resolved, a
==== Returns

*dependencies:: The list of dependencies to resolve
==== Parameters

causing any gem activation errors.
the list of passed dependencies and any child dependencies without
Figures out the best possible configuration of gems that satisfies
def self.resolve(requirements, index, source_requirements = {}, base = [])
  Bundler.ui.info "Resolving dependencies...", false
  base = SpecSet.new(base) unless base.is_a?(SpecSet)
  resolver = new(index, source_requirements, base)
  result = safe_catch(:success) do
    resolver.start(requirements)
    raise resolver.version_conflict
    nil
  end
  Bundler.ui.info "" # new line now that dots are done
  SpecSet.new(result)
rescue => e
  Bundler.ui.info "" # new line before the error
  raise e
end