Processes the topmost available {RequirementState} on the stack @return [void]
Creates and pushes the initial state for the resolution, based upon the {#requested} dependencies @return [void]
Unwinds the states stack because a conflict has been encountered @return [void]
@param [Object] possibility a single possibility @param [Array] requirements an array of requirements @return [Boolean] whether the possibility satisfies all of the
given requirements
Add the current {#possibility} to the dependency graph of the current {#state} @return [void]
Checks a proposed requirement with any existing locked requirement before generating an array of possibilities for it. @param [Object] requirement the proposed requirement @param [Object] activated @return [Array] possibilities
Adds a new {Edge} to the dependency graph without checking for circularity. @param (see add_edge
) @return (see add_edge
)
@param [Conflict] conflict @return [Array] minimal array of requirements that would cause the passed
conflict to occur.
@param [Object] requirement we wish to check @param [Array] possible_binding_requirements array of requirements @param [Array] possibilities array of possibilities the requirements will be used to filter @return [Boolean] whether or not the given requirement is required to filter
out all elements of the array of possibilities.
@param [String] name @return [Object] the requirement that led to a version of a possibility
with the given name being activated.
@param [Object] requirement the proposed requirement @param [Object] activated @return [Array] possibility set containing only the locked requirement, if any
@return [Boolean] where the requirement of the state we’re unwinding
to directly caused the conflict. Note: in this case, it is impossible for the state we're unwinding to to be a parent of any of the other conflicting requirements (or we would have circularity)
Ensures any raised {NoSuchDependencyError} has its {NoSuchDependencyError#required_by} set. @yield