class Shards::MolinilloSolver

Included Modules

Defined in:

molinillo_solver.cr

Constructors

Class Method Summary

Instance Method Summary

Constructor Detail

def self.new(spec : Spec, override : Override | Nil = nil, *, prereleases : Bool = false) #

[View source]

Class Method Detail

def self.crystal_version_req(specification : Shards::Spec) #

[View source]

Instance Method Detail

def after_resolution #
Description copied from module Molinillo::UI

Called after resolution ends (either successfully or with an error). By default, prints a newline.

@return [void]


[View source]
def apply_overrides(deps : Array(Dependency)) #

[View source]
def before_resolution #
Description copied from module Molinillo::UI

Called before resolution begins.

@return [void]


[View source]
def dependencies_for(specification : S) : Array(R) #
Description copied from module Molinillo::SpecificationProvider(Shards::Dependency, Shards::Spec)

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] the dependencies that are required by the given specification.


def indicate_progress #
Description copied from module Molinillo::UI

Called roughly every {#progress_rate}, this method should convey progress to the user.

@return [void]


def locks=(locks : Array(Package) | Nil) #

def name_for(spec : Shards::Spec) #

def name_for(dependency : Shards::Dependency) #
Description copied from module Molinillo::SpecificationProvider(Shards::Dependency, Shards::Spec)

Returns the name for the given dependency. @note This method should be 'pure', i.e. the return value should depend only on the dependency parameter.

@param [Object] dependency @return [String] the name for the given dependency.


def name_for_explicit_dependency_source #
Description copied from module Molinillo::SpecificationProvider(Shards::Dependency, Shards::Spec)

@return [String] the name of the source of explicit dependencies, i.e. those passed to {Resolver#resolve} directly.


def name_for_locking_dependency_source #
Description copied from module Molinillo::SpecificationProvider(Shards::Dependency, Shards::Spec)

@return [String] the name of the source of 'locked' dependencies, i.e. those passed to {Resolver#resolve} directly as the base


def on_override(dependency : Dependency | Shards::Spec) : Dependency | Nil #

def prepare(development : Bool | Nil = true) #

def requirement_satisfied_by?(dependency, activated, spec) #

def search_for(dependency : R) : Array(S) #
Description copied from module Molinillo::SpecificationProvider(Shards::Dependency, Shards::Spec)

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. @note This method should be 'pure', i.e. the return value should depend only on the dependency parameter.

@param [Object] dependency @return [Array] the specifications that satisfy the given dependency.


def solve : Array(Package) #