File Coverage

blib/lib/Object/By/Scalar.pm
Criterion Covered Total %
statement 12 21 57.1
branch 2 4 50.0
condition n/a
subroutine 4 7 57.1
pod 4 4 100.0
total 22 36 61.1


line stmt bran cond sub pod time code
1             package Object::By::Scalar;
2              
3 1     1   20169 use strict;
  1         3  
  1         39  
4 1     1   6 use warnings;
  1         2  
  1         588  
5              
6             sub THIS() { 0 }
7              
8             sub P_CLASS() { 0 }
9             sub P_VALUE() { 1 }
10             sub constructor
11             #( [, ], ...)
12             {
13 1     1 1 20 my $value = undef;
14 1         4 my $this = bless(\$value, shift(@_));
15 1 50       20 $this->_constructor(@_) if ($this->can('_constructor'));
16 1         4 return($this);
17             }
18              
19             sub _constructor
20             #()
21             { # compromise, this is the rule
22 1 50   1   42 if(exists($_[P_VALUE])) {
23 0         0 ${$_[THIS]} = $_[P_VALUE];
  0         0  
24             }
25 1         3 return;
26             }
27              
28             sub sibling_constructor
29             #(, ...)
30             {
31 0     0 1   my $class = ref(shift(@_));
32 0           return($class->constructor(@_));
33             }
34              
35             sub prototype_constructor
36             #()
37             {
38 0     0 1   my $value = undef;
39 0           return(bless(\$value, $_[P_CLASS]));
40             }
41              
42             sub clone_constructor
43             #()
44             {
45 0     0 1   my $value = ${$_[THIS]};
  0            
46 0           return(bless(\$value, ref($_[THIS])));
47             }
48              
49             #sub _lock
50             ##()
51             #{ # no structure to lock
52             #}
53              
54             1;