File Coverage

blib/lib/WDDX/Boolean.pm
Criterion Covered Total %
statement 6 42 14.2
branch 0 18 0.0
condition n/a
subroutine 2 15 13.3
pod n/a
total 8 75 10.6


line stmt bran cond sub pod time code
1             #!/usr/bin/perl -w
2             #
3             # $Id: Boolean.pm,v 1.1.1.1 2003/10/28 16:04:37 andy Exp $
4             #
5             # This code is copyright 1999-2000 by Scott Guelich
6             # and is distributed according to the same conditions as Perl itself
7             # Please visit http://www.scripted.com/wddx/ for more information
8             #
9              
10             package WDDX::Boolean;
11              
12             # Auto-inserted by build scripts
13             $VERSION = "1.01";
14              
15 1     1   1555 use strict;
  1         2  
  1         31  
16 1     1   4 use Carp;
  1         2  
  1         668  
17              
18             require WDDX;
19              
20             { my $i_hate_the_w_flag_sometimes = [
21             $WDDX::PACKET_HEADER,
22             $WDDX::PACKET_FOOTER,
23             $WDDX::Boolean::VERSION
24             ] }
25              
26             1;
27              
28              
29             #/-----------------------------------------------------------------------
30             # Public Methods
31             #
32              
33             sub new {
34 0     0     my( $class, $value ) = @_;
35            
36 0 0         croak "You must supply a value when creating a new $class object\n"
37             unless defined $value;
38            
39 0 0         my $self = {
40             value => $value ? 1 : "",
41             };
42            
43 0           bless $self, $class;
44 0           return $self;
45             }
46              
47              
48             sub type {
49 0     0     return "boolean";
50             }
51              
52              
53             sub as_packet {
54 0     0     my( $self ) = @_;
55 0           my $output = $WDDX::PACKET_HEADER .
56             $self->_serialize .
57             $WDDX::PACKET_FOOTER;
58             }
59              
60              
61             sub as_scalar {
62 0     0     my( $self ) = @_;
63 0           return $self->_deserialize;
64             }
65              
66              
67             sub as_javascript {
68 0     0     my( $self, $js_var ) = @_;
69 0 0         return "$js_var=" . ( $self->{value} ? 'true' : 'false' ) . ";";
70             }
71              
72              
73             #/-----------------------------------------------------------------------
74             # Private Methods
75             #
76              
77             sub is_parser {
78 0     0     return 0;
79             }
80              
81              
82             sub _serialize {
83 0     0     my( $self ) = @_;
84 0 0         my $value = ( $self->{value} ? "true" : "false" );
85 0           my $output = "";
86 0           return $output;
87             }
88              
89              
90             sub _deserialize {
91 0     0     my( $self ) = @_;
92 0           return $self->{value};
93             }
94              
95              
96             #/-----------------------------------------------------------------------
97             # Parsing Code
98             #
99              
100             package WDDX::Boolean::Parser;
101              
102              
103             sub new {
104 0     0     return bless { value => undef }, shift;
105             }
106              
107              
108             sub start_tag {
109 0     0     my( $self, $element, $attribs ) = @_;
110            
111 0 0         if ( $element eq "boolean" ) {
112 0 0         if ( $attribs->{value} eq "true" ) {
    0          
113 0           $self->{value} = 1;
114             }
115             elsif ( $attribs->{value} eq "false" ) {
116 0           $self->{value} = "";
117             }
118             else {
119 0           die "Invalid value for value attribute in tag";
120             }
121             }
122             else {
123 0           die "<$element> not allowed within element\n";
124             }
125            
126 0           return $self;
127             }
128              
129              
130             sub end_tag {
131 0     0     my( $self, $element ) = @_;
132            
133 0 0         if ( $element eq "boolean" ) {
134 0           $self = new WDDX::Boolean( $self->{value} );
135             }
136             else {
137 0           die " not allowed within element\n";
138             }
139 0           return $self;
140             }
141              
142              
143             sub append_data {
144 0     0     my( $self, $data ) = @_;
145 0 0         die "No data is allowed between tags\n" if $data =~ /\S/;
146             }
147              
148              
149             sub is_parser {
150 0     0     return 1;
151             }
152