Class: Bundler::Molinillo::Resolver

Inherits:
Object
  • Object
show all
Defined in:
lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb,
lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb

Overview

This class encapsulates a dependency resolver. The resolver is responsible for determining which set of dependencies to activate, with feedback from the the #specification_provider

Defined Under Namespace

Classes: Resolution

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(specification_provider, resolver_ui) ⇒ Resolver

Returns a new instance of Resolver.

Parameters:



24
25
26
27
# File 'lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb', line 24

def initialize(specification_provider, resolver_ui)
  @specification_provider = specification_provider
  @resolver_ui = resolver_ui
end

Instance Attribute Details

#resolver_uiUI (readonly)

Returns the UI module used to communicate back to the user during the resolution process.

Returns:

  • (UI)

    the UI module used to communicate back to the user during the resolution process



18
19
20
# File 'lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb', line 18

def resolver_ui
  @resolver_ui
end

#specification_providerSpecificationProvider (readonly)

Returns the specification provider used in the resolution process.

Returns:



14
15
16
# File 'lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb', line 14

def specification_provider
  @specification_provider
end

Instance Method Details

#resolve(requested, base = DependencyGraph.new) ⇒ Object

Resolves the requested dependencies into a DependencyGraph, locking to the base dependency graph (if specified)

Parameters:

  • requested (Array)

    an array of ‘requested’ dependencies that the #specification_provider can understand

  • base (DependencyGraph, nil) (defaults to: DependencyGraph.new)

    the base dependency graph to which dependencies should be ‘locked’



35
36
37
38
39
40
41
# File 'lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb', line 35

def resolve(requested, base = DependencyGraph.new)
  Resolution.new(specification_provider,
                 resolver_ui,
                 requested,
                 base).
    resolve
end