NAME

Bolts::Blueprint::Built - Build an artifact by running a subroutine

VERSION

version 0.143171

SYNOPSIS

use Bolts;

# Using the usual sugar...
artifact thing => (
    builder => sub {
        my ($self, $bag, $name, @params) = @_;
        return MyApp::Thing->new(@params);
    },
);

# Or directly...
my $meta = Bolts::Bag->start_bag;

my $artifact = Bolts::Artifact->new(
    name      => 'thing',
    blueprint => $meta->locator->acquire('blueprint', 'built', {
        builder => sub {
            my ($self, $bag, $name, @params) = @_;
            return MyApp::Thing->new(@params);
        },
    }),
    scope    => $meta->locator->acquire('scope', '_'),
);

DESCRIPTION

This is a blueprint for constructing an artifact using a custom subroutine. This is handy for gluing anything to anything.

ROLES

ATTRIBUTES

builder

Required. This is the subroutine to execute to construct the artifact. The reader for this attribute is named the_builder.

METHODS

builder

This executes the subroutine in the builder attribute.

AUTHOR

Andrew Sterling Hanenkamp <hanenkamp@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Qubling Software LLC.

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