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   1145 use strict;
  3         5  
  3         85  
4 3     3   8 use warnings;
  3         4  
  3         61  
5 3     3   10 use Carp;
  3         4  
  3         200  
6 3     3   269 use Module::New::Meta;
  3         6  
  3         20  
7 3     3   1358 use Module::New::Queue;
  3         6  
  3         885  
8            
9             my @options;
10            
11             functions {
12             flow => sub (&) {
13 22     22   98 my $flow = shift;
14             Module::New::Queue->register(sub {
15 11     11   16 my ($self, @args) = @_;
16             Module::New::Queue->localize(sub {
17 11         25 $flow->();
18 11         30 Module::New::Queue->consume( $self, @args );
19             })
20 11         56 })
21 22         186 },
22            
23             loop => sub (&) {
24 4     4   6 my $loop = shift;
25             Module::New::Queue->register(sub {
26 4     4   8 my ($self, @args) = @_;
27             Module::New::Queue->localize(sub {
28 4         10 $loop->();
29 4         8 foreach my $arg ( @args ) {
30 4         10 Module::New::Queue->consume( $self, $arg );
31             }
32 4         23 });
33 4         20 });
34             },
35            
36 18     18   77 available_options => sub (@) { @options = @_ },
37             };
38            
39             methods {
40 0     0   0 options => sub { @options },
41            
42             run => sub {
43 11     11   101 my ($self, @args) = @_;
44 11         60 Module::New::Queue->consume( $self, @args );
45             }
46             };
47            
48             1;
49            
50             __END__