class Build::ProvisionTask

Attributes

build_task[R]
environments[R]
public_environments[R]

Public Class Methods

new(*arguments, **options) click to toggle source
Calls superclass method
# File lib/build/provision_node.rb, line 74
def initialize(*arguments, **options)
        super
        
        @dependencies = []
        
        @environments = []
        @public_environments = []
        
        @build_task = nil
end

Public Instance Methods

local_environment() click to toggle source
# File lib/build/provision_node.rb, line 106
def local_environment
        Build::Environment.combine(@node.environment, *@environments)&.evaluate(name: @node.name).freeze
end
output_environment() click to toggle source
# File lib/build/provision_node.rb, line 110
def output_environment
        if @build_task
                @build_task.output_environment.dup(parent: nil)
        end
end
output_environments() click to toggle source
# File lib/build/provision_node.rb, line 116
def output_environments
        environments = @public_environments.dup
        
        if environment = self.output_environment
                environments << environment
        end
        
        return environments
end
provision() click to toggle source
# File lib/build/provision_node.rb, line 90
def provision
        @node.provision
end
update() click to toggle source
# File lib/build/provision_node.rb, line 94
def update
        provision.each_dependency do |dependency|
                @dependencies << invoke(@node.dependency_node_for(dependency))
        end
        
        if wait_for_children?
                update_environments!
        else
                fail!(DependenciesFailed)
        end
end

Private Instance Methods

update_environments!() click to toggle source
# File lib/build/provision_node.rb, line 128
def update_environments!
        @dependencies.each do |task|
                if environment = task.environment
                        @environments << environment
                        
                        if task.dependency.public? || @node.provision.alias?
                                @public_environments << environment
                        end
                end
        end
        
        unless @node.provision.alias?
                @build_task = invoke(
                        BuildNode.new(local_environment, @node.provision, @node.arguments)
                )
        end
end