File Coverage

blib/lib/AXL/Client/Simple/LineResultSet.pm
Criterion Covered Total %
statement 12 23 52.1
branch 0 2 0.0
condition n/a
subroutine 4 7 57.1
pod 1 2 50.0
total 17 34 50.0


line stmt bran cond sub pod time code
1             package AXL::Client::Simple::LineResultSet;
2 1     1   4 use Moose;
  1         1  
  1         3  
3 1     1   4132 use MooseX::Iterator;
  1         35886  
  1         25  
4              
5 1     1   359 use AXL::Client::Simple::Line;
  1         2  
  1         159  
6              
7             has items => (
8             is => 'ro',
9             isa => 'ArrayRef[AXL::Client::Simple::Line]',
10             required => 1,
11             );
12              
13             sub BUILDARGS {
14 0     0 1   my ($class, @rest) = @_;
15 0 0         my $params = (scalar @rest == 1 ? $rest[0] : {@rest});
16              
17             # promote hashes returned from CUCM into Line objects
18 0           $params->{items} = [ map { AXL::Client::Simple::Line->new($_) }
19 0           @{$params->{items}} ];
  0            
20 0           return $params;
21             }
22              
23             sub count {
24 0     0 0   my $self = shift;
25 0           return scalar @{$self->items};
  0            
26             }
27              
28             has iterator => (
29             is => 'ro',
30             isa => 'MooseX::Iterator::Array',
31             handles => [qw/
32             next
33             has_next
34             peek
35             reset
36             /],
37             lazy_build => 1,
38             );
39              
40             sub _build_iterator {
41 0     0     my $self = shift;
42 0           return MooseX::Iterator::Array->new( collection => $self->items );
43             }
44              
45             __PACKAGE__->meta->make_immutable;
46 1     1   5 no Moose;
  1         1  
  1         4  
47             1;