Module: Bundler::Molinillo::Delegates::SpecificationProvider

Included in:
Resolver::Resolution, VersionConflict
Defined in:
lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb

Overview

Delegates all SpecificationProvider methods to a `#specification_provider` property.

Instance Method Summary collapse

Instance Method Details

#allow_missing?(dependency) ⇒ Boolean

Returns whether this dependency, which has no possible matching specifications, can safely be ignored.

Parameters:

  • dependency (Object)

Returns:

  • (Boolean)

    whether this dependency can safely be skipped.


58
59
60
61
62
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 58

def allow_missing?(dependency)
  with_no_such_dependency_error_handling do
    specification_provider.allow_missing?(dependency)
  end
end

#dependencies_for(specification) ⇒ Array<Object>

Note:

This method should be 'pure', i.e. the return value should depend only on the `specification` parameter.

Returns the dependencies of `specification`.

Parameters:

  • specification (Object)

Returns:

  • (Array<Object>)

    the dependencies that are required by the given `specification`.


16
17
18
19
20
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 16

def dependencies_for(specification)
  with_no_such_dependency_error_handling do
    specification_provider.dependencies_for(specification)
  end
end

#name_for(dependency) ⇒ String

Note:

This method should be 'pure', i.e. the return value should depend only on the `dependency` parameter.

Returns the name for the given `dependency`.

Parameters:

  • dependency (Object)

Returns:

  • (String)

    the name for the given `dependency`.


30
31
32
33
34
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 30

def name_for(dependency)
  with_no_such_dependency_error_handling do
    specification_provider.name_for(dependency)
  end
end

#name_for_explicit_dependency_sourceString

Returns the name of the source of explicit dependencies, i.e. those passed to Resolver#resolve directly.

Returns:

  • (String)

    the name of the source of explicit dependencies, i.e. those passed to Resolver#resolve directly.


37
38
39
40
41
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 37

def name_for_explicit_dependency_source
  with_no_such_dependency_error_handling do
    specification_provider.name_for_explicit_dependency_source
  end
end

#name_for_locking_dependency_sourceString

Returns the name of the source of 'locked' dependencies, i.e. those passed to Resolver#resolve directly as the `base`.

Returns:

  • (String)

    the name of the source of 'locked' dependencies, i.e. those passed to Resolver#resolve directly as the `base`


44
45
46
47
48
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 44

def name_for_locking_dependency_source
  with_no_such_dependency_error_handling do
    specification_provider.name_for_locking_dependency_source
  end
end

#requirement_satisfied_by?(requirement, activated, spec) ⇒ Boolean

Determines whether the given `requirement` is satisfied by the given `spec`, in the context of the current `activated` dependency graph.

Parameters:

  • requirement (Object)
  • activated (DependencyGraph)

    the current dependency graph in the resolution process.

  • spec (Object)

Returns:

  • (Boolean)

    whether `requirement` is satisfied by `spec` in the context of the current `activated` dependency graph.


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

def requirement_satisfied_by?(requirement, activated, spec)
  with_no_such_dependency_error_handling do
    specification_provider.requirement_satisfied_by?(requirement, activated, spec)
  end
end

#search_for(dependency) ⇒ Array<Object>

Note:

This method should be 'pure', i.e. the return value should depend only on the `dependency` parameter.

Search for the specifications that match the given dependency. The specifications in the returned array will be considered in reverse order, so the latest version ought to be last.

Parameters:

  • dependency (Object)

Returns:

  • (Array<Object>)

    the specifications that satisfy the given `dependency`.


9
10
11
12
13
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 9

def search_for(dependency)
  with_no_such_dependency_error_handling do
    specification_provider.search_for(dependency)
  end
end

#sort_dependencies(dependencies, activated, conflicts) ⇒ Array<Object>

Sort dependencies so that the ones that are easiest to resolve are first. Easiest to resolve is (usually) defined by:

1) Is this dependency already activated?
2) How relaxed are the requirements?
3) Are there any conflicts for this dependency?
4) How many possibilities are there to satisfy this dependency?

Parameters:

  • dependencies (Array<Object>)
  • activated (DependencyGraph)

    the current dependency graph in the resolution process.

  • conflicts ({String => Array<Conflict>})

Returns:

  • (Array<Object>)

    a sorted copy of `dependencies`.


51
52
53
54
55
# File 'lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb', line 51

def sort_dependencies(dependencies, activated, conflicts)
  with_no_such_dependency_error_handling do
    specification_provider.sort_dependencies(dependencies, activated, conflicts)
  end
end