File Coverage

blib/lib/App/RecordStream/Aggregator/InjectInto/Field.pm
Criterion Covered Total %
statement 37 39 94.8
branch 1 2 50.0
condition n/a
subroutine 12 13 92.3
pod 0 7 0.0
total 50 61 81.9


line stmt bran cond sub pod time code
1             package App::RecordStream::Aggregator::InjectInto::Field;
2              
3             our $VERSION = "4.0.24";
4              
5 12     12   69 use strict;
  12         26  
  12         298  
6 12     12   57 use warnings;
  12         21  
  12         276  
7              
8 12     12   2087 use App::RecordStream::DomainLanguage::Registry;
  12         37  
  12         333  
9 12     12   82 use App::RecordStream::DomainLanguage::Valuation::KeySpec;
  12         27  
  12         291  
10 12     12   2212 use App::RecordStream::Aggregator::InjectInto;
  12         32  
  12         401  
11              
12 12     12   77 use base qw(App::RecordStream::Aggregator::InjectInto);
  12         27  
  12         3157  
13              
14             sub new
15             {
16 8     8 0 716 my $class = shift;
17 8         24 my $field = shift;
18              
19 8         85 return new_from_valuation($class, App::RecordStream::DomainLanguage::Valuation::KeySpec->new($field));
20             }
21              
22             sub new_from_valuation
23             {
24 14     14 0 34 my $class = shift;
25 14         29 my $valuation = shift;
26              
27 14         55 my $this =
28             {
29             'valuation' => $valuation,
30             };
31              
32 14         34 bless $this, $class;
33              
34 14         72 return $this;
35             }
36              
37             sub initial
38             {
39 48     48 0 106 return undef;
40             }
41              
42             sub combine
43             {
44 542     542 0 901 my $this = shift;
45 542         803 my $cookie = shift;
46 542         814 my $record = shift;
47              
48 542         1479 my $value = $this->get_valuation()->evaluate_record($record);
49              
50 542 50       1159 if ( defined $value )
51             {
52 542         1456 return $this->combine_field($cookie, $value);
53             }
54             else
55             {
56 0         0 return $cookie;
57             }
58             }
59              
60             sub get_valuation
61             {
62 542     542 0 816 my $this = shift;
63 542         1418 return $this->{'valuation'};
64             }
65              
66             sub squish
67             {
68 48     48 0 175 my ($this, $cookie) = @_;
69              
70 48         95 return $cookie;
71             }
72              
73             sub argct
74             {
75 0     0 0   return 1;
76             }
77              
78             1;