File Coverage

blib/lib/ODS/Table/Column/Boolean.pm
Criterion Covered Total %
statement 10 18 55.5
branch 2 6 33.3
condition 0 8 0.0
subroutine 3 5 60.0
pod 0 3 0.0
total 15 40 37.5


line stmt bran cond sub pod time code
1             package ODS::Table::Column::Boolean;
2              
3 2     2   12 use YAOO;
  2         4  
  2         9  
4              
5             extends 'ODS::Table::Column::Base';
6              
7 2     2   546 use ODS::Utils qw/clone error/;
  2         3  
  2         16  
8              
9             has reference => isa(boolean);
10              
11             sub validation {
12 0 0 0 0 0 0 if (ref($_[1] || "") ne 'SCALAR' && ${$_[1]} !~ m/1|0/) {
  0   0     0  
13 0         0 croak sprintf "The value passed to the %s column does not match the boolean constraint.",
14             $_[0]->name;
15             }
16 0         0 return $_[1];
17             }
18              
19             sub inflation {
20 4     4 0 39 my ($self, $value) = @_;
21 4 100       20 if (! ref $value) {
22 3         11 $self->reference(\1);
23 3         107 $value = \!!$value;
24             }
25             }
26              
27             sub deflation {
28 0     0 0   my ($self, $value) = @_;
29 0 0 0       if ($self->reference && ref $value) {
30 0           $value = $$value;
31             }
32 0           return $value;
33             }
34              
35             1;
36              
37             __END__