File Coverage

blib/lib/XML/ASX/Repeat.pm
Criterion Covered Total %
statement 12 36 33.3
branch 0 6 0.0
condition 0 3 0.0
subroutine 4 9 44.4
pod 0 4 0.0
total 16 58 27.5


line stmt bran cond sub pod time code
1             package XML::ASX::Repeat;
2              
3 1     1   7 use strict;
  1         2  
  1         48  
4 1     1   5 use vars qw($VERSION $AUTOLOAD @ISA);
  1         2  
  1         78  
5              
6             @ISA = qw(XML::ASX);
7              
8 1     1   6 use XML::ASX::Entry;
  1         1  
  1         30  
9              
10 1     1   14 use overload '""' => \&xml;
  1         1  
  1         9  
11              
12             $VERSION = '0.01';
13              
14             my %RW_SLOTS = (
15             count => '1',
16             );
17              
18             sub AUTOLOAD {
19 0     0     my $self = shift;
20 0           my $param = $AUTOLOAD;
21 0           $param =~ s/.*:://;
22 0 0         die(__PACKAGE__." doesn't implement $param") unless defined($RW_SLOTS{$param});
23 0 0         $self->{$param} = shift if @_;
24 0           return $self->{$param};
25             }
26              
27             sub new {
28 0     0 0   my $class = shift;
29 0           my %param = @_;
30 0           my $self = bless {}, $class;
31              
32 0           $self->$_($RW_SLOTS{$_}) foreach keys %RW_SLOTS;
33 0           $self->$_($param{$_}) foreach keys %param;
34              
35 0           return $self;
36             }
37              
38             sub add_entry {
39 0     0 0   my $self = shift;
40 0   0       my $entry = shift || XML::ASX::Entry->new;
41 0           push @{$self->{entries}}, $entry;
  0            
42              
43 0           return $self->{entries}->[scalar @{$self->{entries}} - 1];
  0            
44             }
45              
46             sub each_entry {
47 0     0 0   my $self = shift;
48 0 0         return $self->{entries} ? @{$self->{entries}} : ();
  0            
49             }
50              
51             sub xml {
52 0     0 0   my $self = shift;
53              
54 0           my $content = join '', ($self->each_entry);
55              
56 0           return $self->entag('Repeat',$content,{COUNT=>$self->count});
57             }
58              
59             1;
60             __END__