module Molinillo::SpecificationProvider(R, S)
Overview
Provides information about specifcations and dependencies to the resolver, allowing the {Resolver} class to remain generic while still providing power and flexibility.
This module contains the methods that users of Molinillo must to implement, using knowledge of their own model classes.
Defined in:
molinillo/modules/specification_provider.crInstance Method Summary
-
#allow_missing?(dependency : R)
Returns whether this dependency, which has no possible matching specifications, can safely be ignored.
-
#dependencies_for(specification : S)
Returns the dependencies of
specification
. -
#name_for(dependency : R)
Returns the name for the given
dependency
. -
#name_for_explicit_dependency_source
@return [String] the name of the source of explicit dependencies, i.e.
-
#name_for_locking_dependency_source
@return [String] the name of the source of 'locked' dependencies, i.e.
-
#requirement_satisfied_by?(requirement : R, activated : DependencyGraph, spec : S)
Determines whether the given
requirement
is satisfied by the givenspec
, in the context of the currentactivated
dependency graph. -
#search_for(dependency : R)
Search for the specifications that match the given dependency.
-
#sort_dependencies(dependencies : Array(R), activated : DependencyGraph, conflicts)
Sort dependencies so that the ones that are easiest to resolve are first.
Instance Method Detail
Returns whether this dependency, which has no possible matching specifications, can safely be ignored.
@param [Object] dependency @return [Boolean] whether this dependency can safely be skipped.
Returns the dependencies of specification
.
@note This method should be 'pure', i.e. the return value should depend
only on the specification
parameter.
@param [Object] specification @return [Array