File Coverage

blib/lib/Module/New/Recipe.pm
Criterion Covered Total %
statement 31 32 96.8
branch n/a
condition n/a
subroutine 11 12 91.6
pod n/a
total 42 44 95.4


line stmt bran cond sub pod time code
1             package Module::New::Recipe;
2              
3 3     3   1312 use strict;
  3         5  
  3         99  
4 3     3   11 use warnings;
  3         3  
  3         62  
5 3     3   12 use Carp;
  3         4  
  3         180  
6 3     3   329 use Module::New::Meta;
  3         5  
  3         17  
7 3     3   1135 use Module::New::Queue;
  3         5  
  3         708  
8              
9             my @options;
10              
11             functions {
12             flow => sub (&) {
13 20     20   121 my $flow = shift;
14             Module::New::Queue->register(sub {
15 11     11   22 my ($self, @args) = @_;
16             Module::New::Queue->localize(sub {
17 11         35 $flow->();
18 11         46 Module::New::Queue->consume( $self, @args );
19             })
20 11         73 })
21 20         164 },
22              
23             loop => sub (&) {
24 4     4   6 my $loop = shift;
25             Module::New::Queue->register(sub {
26 4     4   10 my ($self, @args) = @_;
27             Module::New::Queue->localize(sub {
28 4         10 $loop->();
29 4         10 foreach my $arg ( @args ) {
30 4         14 Module::New::Queue->consume( $self, $arg );
31             }
32 4         33 });
33 4         23 });
34             },
35              
36 18     18   87 available_options => sub (@) { @options = @_ },
37             };
38              
39             methods {
40 0     0   0 options => sub { @options },
41              
42             run => sub {
43 11     11   122 my ($self, @args) = @_;
44 11         51 Module::New::Queue->consume( $self, @args );
45             }
46             };
47              
48             1;
49              
50             __END__