File Coverage

blib/lib/WebService/Pokemon/APIResourceList.pm
Criterion Covered Total %
statement 18 29 62.0
branch 0 2 0.0
condition n/a
subroutine 6 7 85.7
pod n/a
total 24 38 63.1


line stmt bran cond sub pod time code
1             package WebService::Pokemon::APIResourceList;
2              
3 5     5   32 use utf8;
  5         10  
  5         22  
4 5     5   159 use strictures 2;
  5         48  
  5         198  
5 5     5   1060 use namespace::clean;
  5         10  
  5         38  
6              
7 5     5   1008 use Moo;
  5         11  
  5         70  
8 5     5   1538 use Types::Standard qw(Any ArrayRef HashRef InstanceOf Int Str);
  5         19  
  5         28  
9 5     5   4556 use Test::More;
  5         10  
  5         39  
10              
11             our $VERSION = '0.10';
12              
13             has api => (
14                 isa => InstanceOf['WebService::Pokemon'],
15                 is => 'rw',
16             );
17              
18             has response => (
19                 isa => HashRef,
20                 is => 'rw',
21             );
22              
23             has count => (
24                 isa => Int,
25                 is => 'rw',
26                 lazy => 1,
27                 default => sub {
28                     my $self = shift;
29                     return $self->response->{count};
30                 },
31             );
32              
33             has previous => (
34                 isa => Any,
35                 is => 'rw',
36                 lazy => 1,
37                 default => sub {
38                     my $self = shift;
39                     return $self->response->{previous};
40                 },
41             );
42              
43             has next => (
44                 isa => Any,
45                 is => 'rw',
46                 lazy => 1,
47                 default => sub {
48                     my $self = shift;
49                     return $self->response->{next};
50                 },
51             );
52              
53             has results => (
54                 isa => ArrayRef,
55                 is => 'rw',
56                 lazy => 1,
57                 builder => 1,
58             );
59              
60             sub _build_results {
61 0     0         my ($self) = @_;
62              
63 0 0             return $self->response->{results} if (!$self->api->autoload);
64              
65 0               my $urls = [map { $_->{url} } @{$self->response->{results}}];
  0            
  0            
66              
67 0               my $results = [];
68 0               foreach my $url (@{$urls}) {
  0            
69 0                   push @{$results}, $self->api->resource_by_url($url);
  0            
70                 }
71              
72 0               return $results;
73             }
74              
75             1;
76