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 66     66   28565 use XML::LibXML::Number;
  66         177  
  66         1572  
13 66     66   422 use XML::LibXML::Literal;
  66         142  
  66         1370  
14 66     66   312 use strict;
  66         121  
  66         1233  
15 66     66   299 use warnings;
  66         123  
  66         1658  
16              
17 66     66   337 use vars qw ($VERSION);
  66         127  
  66         4243  
18              
19             $VERSION = "2.0207"; # VERSION TEMPLATE: DO NOT CHANGE
20              
21             use overload
22 66         522 '""' => \&value,
23 66     66   450 '<=>' => \&cmp;
  66         141  
24              
25             sub new {
26 15     15 0 36 my $class = shift;
27 15         32 my ($param) = @_;
28 15 100       46 my $val = $param ? 1 : 0;
29 15         90 bless \$val, $class;
30             }
31              
32             sub True {
33 3     3 1 8 my $class = shift;
34 3         7 my $val = 1;
35 3         34 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 1042 my $self = shift;
46 18         98 $$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         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 30 sub to_literal { XML::LibXML::Literal->new($_[0]->value ? "true" : "false"); }
61              
62 2     2 0 1508 sub string_value { return $_[0]->to_literal->value; }
63              
64             1;
65             __END__