File Coverage

blib/lib/Text/APL/Context.pm
Criterion Covered Total %
statement 33 33 100.0
branch 2 2 100.0
condition 4 4 100.0
subroutine 12 12 100.0
pod 2 7 28.5
total 53 58 91.3


line stmt bran cond sub pod time code
1             package Text::APL::Context;
2              
3 3     3   50742 use strict;
  3         11  
  3         64  
4 3     3   12 use warnings;
  3         3  
  3         59  
5              
6 3     3   12 use base 'Text::APL::Base';
  3         4  
  3         466  
7              
8 3     3   17 use Digest::MD5 ();
  3         4  
  3         915  
9              
10             sub _BUILD {
11 26     26   33 my $self = shift;
12              
13 26   100     94 $self->{vars} ||= {};
14 26   100     88 $self->{helpers} ||= {};
15             }
16              
17             sub id {
18 28     28 0 39 my $self = shift;
19              
20 28         34 my $id = '';
21              
22 28         34 $id .= join ':', sort keys %{$self->{vars}};
  28         87  
23 28         37 $id .= ',';
24 28         42 $id .= join ':', sort keys %{$self->{helpers}};
  28         78  
25              
26 28         136 return Digest::MD5::md5_hex($id);
27             }
28              
29 31 100   31 0 135 sub name { $_[0]->{name} || '' }
30 35     35 1 262 sub vars { $_[0]->{vars} }
31 64     64 1 804 sub helpers { $_[0]->{helpers} }
32              
33             sub add_helper {
34 45     45 0 84 my $self = shift;
35              
36 45         68 $self->add('helpers', @_);
37             }
38              
39             sub add_var {
40 1     1 0 23 my $self = shift;
41              
42 1         7 $self->add('vars', @_);
43             }
44              
45             sub add {
46 46     46 0 49 my $self = shift;
47 46         74 my ($type, $key, $value) = @_;
48              
49 46         93 $self->{$type}->{$key} = $value;
50             }
51              
52             1;
53             __END__