NAME

ExtUtils::Builder::Plan - An ExtUtils::Builder Plan

VERSION

version 0.010

SYNOPSIS

package Frobnicate;
sub plan {
    my %nodes = ...;
    return ExtUtils::Builder::Plan->new(
        nodes => \%nodes,
    );
}

my $plan = Frobnicate->plan(@args);

# various consumption methods
$plan->run('foo');
say $_->target for $plan->nodes;

DESCRIPTION

An object of this class describes a process. It contains one or more nodes. This is enough to describe whole building processes, in fact its run method is a tiny make engine.

ATTRIBUTES

nodes

This is the set of all nodes in this plan.

METHODS

run($target, %options)

This runs the process. Similar to make, it checks for each node if it is necessary to run, and if not skips it. $target may either be a single string or an array ref of strings for the targets to run.

node($target)

Returns the node for the specified $target.

node_names()

Returns the names of all the nodes.

merge($other)

This merges this plan with another, and returns the new plan. Each entry may only exist on one side of the merge.

phonies()

This returns the names of all phony targets.

AUTHOR

Leon Timmermans <fawaka@gmail.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Leon Timmermans.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.