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.25";
4              
5 12     12   67 use strict;
  12         24  
  12         287  
6 12     12   49 use warnings;
  12         190  
  12         523  
7              
8 12     12   2793 use App::RecordStream::DomainLanguage::Registry;
  12         151  
  12         302  
9 12     12   64 use App::RecordStream::DomainLanguage::Valuation::KeySpec;
  12         116  
  12         229  
10 12     12   3023 use App::RecordStream::Aggregator::InjectInto;
  12         27  
  12         281  
11              
12 12     12   61 use base qw(App::RecordStream::Aggregator::InjectInto);
  12         18  
  12         3035  
13              
14             sub new
15             {
16 8     8 0 587 my $class = shift;
17 8         23 my $field = shift;
18              
19 8         75 return new_from_valuation($class, App::RecordStream::DomainLanguage::Valuation::KeySpec->new($field));
20             }
21              
22             sub new_from_valuation
23             {
24 14     14 0 28 my $class = shift;
25 14         28 my $valuation = shift;
26              
27 14         36 my $this =
28             {
29             'valuation' => $valuation,
30             };
31              
32 14         32 bless $this, $class;
33              
34 14         52 return $this;
35             }
36              
37             sub initial
38             {
39 48     48 0 131 return undef;
40             }
41              
42             sub combine
43             {
44 542     542 0 1099 my $this = shift;
45 542         714 my $cookie = shift;
46 542         657 my $record = shift;
47              
48 542         891 my $value = $this->get_valuation()->evaluate_record($record);
49              
50 542 50       967 if ( defined $value )
51             {
52 542         1172 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 689 my $this = shift;
63 542         1114 return $this->{'valuation'};
64             }
65              
66             sub squish
67             {
68 48     48 0 154 my ($this, $cookie) = @_;
69              
70 48         93 return $cookie;
71             }
72              
73             sub argct
74             {
75 0     0 0   return 1;
76             }
77              
78             1;