oracular (3) ExtUtils::Builder::Planner.3pm.gz

Provided by: libextutils-builder-perl_0.011-1_all bug

NAME

       ExtUtils::Builder::Planner - An ExtUtils::Builder Plan builder

VERSION

       version 0.011

SYNOPSIS

        my $planner = ExtUtils::Builder::Planner->new;
        $planner->create_node(
            target       => 'foo',
            dependencies => [ 'bar' ],
            actions      => \@actions,
        );
        my $plan = $planner->materialize;

DESCRIPTION

METHODS

   add_node($node)
       This adds an ExtUtils::Builder::Node to the planner.

   create_node(%args)
       This creates a new node and adds it to the planner using "add_node". It takes the same named arguments as
       "ExtUtils::Builder::Node".

       •   target

           The target of the node. This is mandatory.

       •   dependencies

           The list of dependencies for this node.

       •   actions

           The actions to perform to create or update this node.

       •   phony

           A boolean to mark a target as phony. This defaults to false.

   add_plan($plan)
       This adds all nodes in the plan to the planner.

   add_delegate($name, $sub)
       This adds $sub as a helper method to this planner, with the name $name.

   create_phony($target, @dependencies)
       This is a helper function that calls "create_node" for a action-free phony target.

   load_module($extension, $version, %options)
       This adds the delegate from the given module. If $version is defined it will verify if the extension is
       at least that version.

   new_scope()
       This opens a new scope on the planner. It return a child planner that shared the build tree state with
       its parent, but any delegated added to it will not be added to the parent.

   run_dsl($filename)
       This runs $filename as a DSL file. This is a script file that includes Planner methods as functions. For
       example:

        use strict;
        use warnings;

        create_node(
            target       => 'foo',
            dependencies => [ 'bar' ],
            actions      => [
                       command(qw/echo Hello World!/),
                       function(module => 'Foo', function => 'bar'),
                       code(code => 'print "Hello World"'),
                ],
        );

        load_module("Foo");

        add_foo("a.foo", "a.bar");

       This will also add "command", "function" and "code" helper functions that correspond to
       ExtUtils::Builder::Action::Command, ExtUtils::Builder::Action::Function and
       ExtUtils::Builder::Action::Code respectively.

   materialize()
       This returns a new ExtUtils::Builder::Plan object based on the planner.

AUTHOR

       Leon Timmermans <fawaka@gmail.com>

       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.