BuildSourceBuildDependencyTask

class DependencyTask

Represents a task that resolves and builds all provisions for a dependency.

Definitions

def initialize(*arguments, **options)

Initialize the dependency task.

Implementation

def initialize(*arguments, **options)
	super
	
	@provisions = []
	
	@environments = nil
	@environment = nil
end

def dependency

Signature

returns Build::Dependency

The dependency being resolved by this task.

Implementation

def dependency
	@node.dependency
end

def update

Build all provisions for the dependency and combine the resulting environments.

Implementation

def update
	Console.debug(self) do |buffer|
		buffer.puts "building #{@node} which #{@node.dependency}"
		@node.provisions.each do |provision|
			buffer.puts "\tbuilding #{provision.provider.name} which #{provision}"
		end
	end
	
	# Lookup what things this dependency provides:
	@node.provisions.each do |provision|
		@provisions << invoke(
			@node.provision_node_for(provision)
		)
	end
	
	if wait_for_children?
		update_environments!
	else
		fail!(ProvisionsFailed)
	end
end