File Coverage

lib/Rex/Shared/Var/Scalar.pm
Criterion Covered Total %
statement 21 21 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod n/a
total 29 29 100.0


line stmt bran cond sub pod time code
1             #
2             # (c) Jan Gehring
3             #
4              
5             package Rex::Shared::Var::Scalar;
6              
7 14     14   188 use v5.12.5;
  14         48  
8 14     14   87 use warnings;
  14         33  
  14         439  
9              
10 14     14   3143 use Rex::Shared::Var::Common qw/__lock __store __retrieve/;
  14         33  
  14         3715  
11              
12             our $VERSION = '1.14.3'; # VERSION
13              
14             sub TIESCALAR {
15 55     55   158 my $self = { varname => $_[1], };
16 55         167 bless $self, $_[0];
17             }
18              
19             sub STORE {
20 85     85   1550 my $self = shift;
21 85         257 my $value = shift;
22              
23             return __lock sub {
24 85     85   236 my $ref = __retrieve;
25 85         6381 my $ret = $ref->{ $self->{varname} } = $value;
26 85         359 __store $ref;
27              
28 85         89700 return $ret;
29 85         619 };
30             }
31              
32             sub FETCH {
33 103     103   22664 my $self = shift;
34              
35             return __lock sub {
36 103     103   339 my $ref = __retrieve;
37 103         11433 return $ref->{ $self->{varname} };
38 103         990 };
39             }
40              
41             1;