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   27719 use XML::LibXML::Number;
  67         170  
  67         1623  
13 67     67   444 use XML::LibXML::Literal;
  67         169  
  67         1037  
14 67     67   313 use strict;
  67         171  
  67         1211  
15 67     67   383 use warnings;
  67         128  
  67         1669  
16              
17 67     67   332 use vars qw ($VERSION);
  67         205  
  67         4478  
18              
19             $VERSION = "2.0209"; # VERSION TEMPLATE: DO NOT CHANGE
20              
21             use overload
22 67         548 '""' => \&value,
23 67     67   458 '<=>' => \&cmp;
  67         171  
24              
25             sub new {
26 15     15 0 36 my $class = shift;
27 15         27 my ($param) = @_;
28 15 100       43 my $val = $param ? 1 : 0;
29 15         95 bless \$val, $class;
30             }
31              
32             sub True {
33 3     3 1 7 my $class = shift;
34 3         6 my $val = 1;
35 3         30 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 938 my $self = shift;
46 18         119 $$self;
47             }
48              
49             sub cmp {
50 1     1 0 19 my $self = shift;
51 1         4 my ($other, $swap) = @_;
52 1 50       5 if ($swap) {
53 0         0 return $other <=> $$self;
54             }
55 1         6 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 23 sub to_literal { XML::LibXML::Literal->new($_[0]->value ? "true" : "false"); }
61              
62 2     2 0 943 sub string_value { return $_[0]->to_literal->value; }
63              
64             1;
65             __END__