class Bundler::Definition

def resolve

Returns:
  • (SpecSet) - resolved dependencies
def resolve
  @resolve ||= begin
    if Bundler.settings[:frozen] || (!@unlocking && nothing_changed?)
      @locked_specs
    else
      last_resolve = converge_locked_specs
      # Record the specs available in each gem's source, so that those
      # specs will be available later when the resolver knows where to
      # look for that gemspec (or its dependencies)
      source_requirements = {}
      dependencies.each do |dep|
        next unless dep.source
        source_requirements[dep.name] = dep.source.specs
      end
      # Run a resolve against the locally available gems
      last_resolve.merge Resolver.resolve(expanded_dependencies, index, source_requirements, last_resolve)
    end
  end
end