class PartialChain
A partial dependency chain that resolves only a subset of dependencies.
Definitions
def self.expand(*args)
An UnresolvedDependencyError will be thrown if there are any unresolved dependencies.
Implementation
def self.expand(*args)
chain = self.new(*args)
chain.freeze
return chain
end
def initialize(chain, dependencies)
Initialize a partial chain.
Signature
-
parameter
chainChain The parent chain to use for resolution.
-
parameter
dependenciesArray<Depends> The dependencies to resolve.
Implementation
def initialize(chain, dependencies)
super()
@chain = chain
@dependencies = dependencies.collect{|dependency| Depends[dependency]}
expand_top
end
def selection
Get the selection from the parent chain.
Signature
-
returns
Set<String> The explicitly selected dependencies.
Implementation
def selection
@chain.selection
end
attr :dependencies
def providers
Get the providers from the parent chain.
Signature
-
returns
Array<Provider> The available providers.
Implementation
def providers
@chain.providers
end
def freeze
Freeze the partial chain.
Implementation
def freeze
return self if frozen?
@chain.freeze
@dependencies.freeze
super
end