Bolts
view release on metacpan or search on metacpan
lib/Bolts.pm view on Meta::CPAN
my ($self, $bag, $name, %params) = @_;
return $def->name->new(
__parent => $bag,
%params,
);
},
)
);
}
sub contains(&;$) {
my ($parent_meta, $code, $such_that_each) = @_;
my $meta = _bag_meta($parent_meta);
return sub {
my ($name) = shift;
my $parent = $meta->name;
my $bag_meta = Bolts::Bag->start_bag(
lib/Bolts.pm view on Meta::CPAN
pop @BAG_META;
$bag_meta->finish_bag;
return $bag_meta;
};
}
sub such_that_each($) {
my ($meta, $params) = @_;
return $params;
}
sub builder(&) {
my ($meta, $code) = @_;
$meta = _bag_meta($meta);
return {
blueprint => $meta->acquire('blueprint', 'built_injector', {
builder => $code,
}),
};
}
sub dep($) {
my ($meta, $path) = @_;
$meta = _bag_meta($meta);
$path = [ $path ] unless ref $path eq 'ARRAY';
my @path = ('__top', @$path);
return {
blueprint => $meta->acquire('blueprint', 'acquired', {
path => \@path,
}),
};
}
sub option($) {
my ($meta, $p) = @_;
my %bp = %$p;
my %ip;
for my $k (qw( isa does )) {
$ip{$k} = delete $bp{$k} if exists $bp{$k};
}
return {
%ip,
blueprint => $meta->acquire('blueprint', 'given', \%bp),
},
}
sub value($) {
my ($meta, $value) = @_;
return {
blueprint => $meta->acquire('blueprint', 'literal', {
value => $value,
}),
};
}
sub self() {
my ($meta, $value) = @_;
return {
blueprint => $meta->acquire('blueprint', 'parent_bag'),
};
}
1;
( run in 0.536 second using v1.01-cache-2.11-cpan-65fba6d93b7 )