File Coverage

blib/lib/ODS/Table/Column/Boolean.pm
Criterion Covered Total %
statement 16 18 88.8
branch 4 6 66.6
condition 3 8 37.5
subroutine 5 5 100.0
pod 0 3 0.0
total 28 40 70.0


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