File Coverage

blib/lib/XML/LibXML/Boolean.pm
Criterion Covered Total %
statement 33 39 84.6
branch 5 6 83.3
condition n/a
subroutine 12 15 80.0
pod 4 9 44.4
total 54 69 78.2


line stmt bran cond sub pod time code
1             # $Id$
2             #
3             #
4             # This is free software, you may use it and distribute it under the same terms as
5             # Perl itself.
6             #
7             # Copyright 2001-2003 AxKit.com Ltd., 2002-2006 Christian Glahn, 2006-2009 Petr Pajas
8             #
9             #
10              
11             package XML::LibXML::Boolean;
12 67     67   23118 use XML::LibXML::Number;
  67         146  
  67         1326  
13 67     67   360 use XML::LibXML::Literal;
  67         113  
  67         854  
14 67     67   253 use strict;
  67         116  
  67         992  
15 67     67   252 use warnings;
  67         103  
  67         1417  
16              
17 67     67   300 use vars qw ($VERSION);
  67         124  
  67         3780  
18              
19             $VERSION = "2.0208"; # VERSION TEMPLATE: DO NOT CHANGE
20              
21             use overload
22 67         528 '""' => \&value,
23 67     67   386 '<=>' => \&cmp;
  67         136  
24              
25             sub new {
26 15     15 0 28 my $class = shift;
27 15         25 my ($param) = @_;
28 15 100       35 my $val = $param ? 1 : 0;
29 15         86 bless \$val, $class;
30             }
31              
32             sub True {
33 3     3 1 6 my $class = shift;
34 3         4 my $val = 1;
35 3         26 bless \$val, $class;
36             }
37              
38             sub False {
39 0     0 1 0 my $class = shift;
40 0         0 my $val = 0;
41 0         0 bless \$val, $class;
42             }
43              
44             sub value {
45 18     18 1 801 my $self = shift;
46 18         72 $$self;
47             }
48              
49             sub cmp {
50 1     1 0 6 my $self = shift;
51 1         3 my ($other, $swap) = @_;
52 1 50       4 if ($swap) {
53 0         0 return $other <=> $$self;
54             }
55 1         4 return $$self <=> $other;
56             }
57              
58 0     0 0 0 sub to_number { XML::LibXML::Number->new($_[0]->value); }
59 0     0 0 0 sub to_boolean { $_[0]; }
60 7 100   7 1 17 sub to_literal { XML::LibXML::Literal->new($_[0]->value ? "true" : "false"); }
61              
62 2     2 0 1258 sub string_value { return $_[0]->to_literal->value; }
63              
64             1;
65             __END__