class Build::ChainNode

Responsible for processing a chain into a series of dependency nodes.

Attributes

arguments[R]
chain[R]
environment[R]

Public Class Methods

new(chain, arguments, environment) click to toggle source

@param chain [Chain] the chain to build. @param arguments [Array] the arguments to pass to the output environment constructor. @param anvironment [Build::Environment] the root environment to prepend into the chain.

Calls superclass method
# File lib/build/chain_node.rb, line 33
def initialize(chain, arguments, environment)
        @chain = chain
        @arguments = arguments
        @environment = environment
        
        # Wait here, for all dependent targets, to be done:
        super(Files::List::NONE, :inherit)
end

Public Instance Methods

==(other) click to toggle source
Calls superclass method
# File lib/build/chain_node.rb, line 46
def == other
        super and
                @chain == other.chain and
                @arguments == other.arguments and
                @environment == other.environment
end
apply!(task) click to toggle source

This is the main entry point when invoking the node from `Build::Task`.

# File lib/build/chain_node.rb, line 66
def apply!(task)
        # Go through all the dependencies in order and apply them to the build graph:
        @chain.dependencies.each do |dependency|
                task.invoke(
                        DependencyNode.new(@chain, dependency, @environment, @arguments)
                )
        end
end
hash() click to toggle source
Calls superclass method
# File lib/build/chain_node.rb, line 53
def hash
        super ^ @chain.hash ^ @arguments.hash ^ @environment.hash
end
inspect() click to toggle source
# File lib/build/chain_node.rb, line 75
def inspect
        "#<#{self.class} #{@environment.inspect}>"
end
name() click to toggle source
# File lib/build/chain_node.rb, line 61
def name
        @environment.name
end
task_class(parent_task) click to toggle source
# File lib/build/chain_node.rb, line 57
def task_class(parent_task)
        Task
end