File Coverage

blib/lib/Object/eBay/Boolean.pm
Criterion Covered Total %
statement 28 28 100.0
branch 6 6 100.0
condition 6 8 75.0
subroutine 11 11 100.0
pod 4 5 80.0
total 55 58 94.8


line stmt bran cond sub pod time code
1             package Object::eBay::Boolean;
2             our $VERSION = '0.5.1';
3              
4 4     4   22516 use Class::Std; {
  4         12581  
  4         28  
5 4     4   9109 use warnings;
  4         8  
  4         133  
6 4     4   23 use strict;
  4         11  
  4         133  
7 4     4   20 use Carp;
  4         6  
  4         1028  
8              
9             my %value_for :ATTR( :get );
10              
11             sub BUILD {
12 5     5 0 1528 my ($self, $ident, $args_ref) = @_;
13 5   50     16 my $details = $args_ref->{object_details} || q{};
14 5 100 100     237 croak "Invalid boolean value '$details'\n"
15             unless $details eq 'true' || $details eq 'false';
16 4 100 66     37 $value_for{$ident} = $details && $details eq 'true' ? 1 : 0;
17             }
18              
19             sub as_string :STRINGIFY {
20 4     4 1 323 my ($self) = @_;
21 4 100       15 return $self->get_value() ? 'true' : 'false';
22 4     4   33 }
  4         7  
  4         24  
23              
24             sub as_boolean :BOOLIFY {
25 4     4 1 114 my ($self) = @_;
26 4         14 return $self->get_value();
27 4     4   880 }
  4         11  
  4         18  
28              
29 1     1 1 626 sub true { shift->new({ object_details => 'true' }) }
30 1     1 1 530 sub false { shift->new({ object_details => 'false' }) }
31             }
32              
33             1;
34              
35             __END__