File Coverage

blib/lib/Build/Hopen/G/CollectOp.pm
Criterion Covered Total %
statement 26 27 96.3
branch n/a
condition n/a
subroutine 9 10 90.0
pod 1 1 100.0
total 36 38 94.7


line stmt bran cond sub pod time code
1             # Build::Hopen::G::CollectOp - pull values from scope(s)
2             package Build::Hopen::G::CollectOp;
3 3     3   618 use Build::Hopen qw(:default UNSPECIFIED);
  3         7  
  3         339  
4 3     3   22 use Build::Hopen::Base;
  3         6  
  3         23  
5              
6             our $VERSION = '0.000008'; # TRIAL
7              
8 3     3   705 use parent 'Build::Hopen::G::Op';
  3         10  
  3         19  
9             use Class::Tiny {
10 3         18 levels => 'local',
11 3     3   180 };
  3         7  
12              
13 3     3   756 use Build::Hopen::Util::Data qw(clone forward_opts);
  3         8  
  3         153  
14 3     3   20 use Build::Hopen::Arrrgs;
  3         5  
  3         122  
15 3     3   16 use Storable ();
  3         6  
  3         489  
16              
17             # Docs {{{1
18              
19             =head1 NAME
20              
21             Build::Hopen::G::CollectOp - a no-op
22              
23             =head1 SYNOPSIS
24              
25             An C is a concrete L that passes its inputs, or
26             other values drawn from its scope, to its outputs unchanged. For example,
27             C instances are used by L to represent goals.
28              
29             =head1 ATTRIBUTES
30              
31             =head2 levels
32              
33             Which levels of L to pull from, as defined by
34             L. Default is C<'local'>, i.e., to and including
35             the first Scope encountered that has L set.
36              
37             =cut
38              
39             # }}}1
40              
41             =head1 FUNCTIONS
42              
43             =head2 _run
44              
45             Copy the inputs to the outputs. Usage:
46              
47             my $hrOutputs = $op->run([-context=>$scope])
48              
49             The output is C<{}> if no inputs are provided.
50             See L for more details.
51              
52             =cut
53              
54             sub _run {
55 6     6   24 my ($self, %args) = parameters('self', [qw(*)], @_);
56 6     0   35 hlog { Running => __PACKAGE__ , $self->name };
  0         0  
57 6         143 return $self->passthrough(-nocontext => 1, -levels => $self->levels);
58             # -nocontext because Runnable::run() already hooked in the context
59             } #run()
60              
61             =head2 BUILD
62              
63             Constructor
64              
65             =cut
66              
67             sub BUILD {
68 5     5 1 1908 my $self = shift;
69 5         23 $self->want(UNSPECIFIED); # we'll take anything
70             }
71              
72             1;
73             __END__