File Coverage

blib/lib/MetaCPAN/API/Rating.pm
Criterion Covered Total %
statement 24 31 77.4
branch 5 10 50.0
condition 0 3 0.0
subroutine 6 6 100.0
pod 1 1 100.0
total 36 51 70.5


line stmt bran cond sub pod time code
1 17     17   191066 use strict;
  17         55  
  17         642  
2 17     17   156 use warnings;
  17         33  
  17         1569  
3             package MetaCPAN::API::Rating;
4              
5             our $VERSION = '0.52';
6              
7 17     17   104 use Carp;
  17         33  
  17         1166  
8 17     17   514 use Moo::Role;
  17         11272  
  17         124  
9 17     17   9529 use namespace::autoclean;
  17         14826  
  17         149  
10              
11             # /rating/{id}
12             # /rating/_search
13             sub rating {
14 2     2 1 2382 my $self = shift;
15 2         5 my $url = '';
16 2         5 my $error = "Either provide 'id' or 'search'";
17              
18 2         5 my %extra_opts = ();
19              
20 2 50       12 if ( @_ == 1 ) {
    100          
21 0         0 $url = 'rating/' . shift;
22             } elsif ( @_ ) {
23 1         5 my %opts = @_;
24              
25 1 50       8 if ( defined ( my $id = $opts{'id'} ) ) {
    50          
26 0         0 $url = "rating/$id";
27             } elsif ( defined ( my $search_opts = $opts{'search'} ) ) {
28 0 0 0     0 croak $error
29             unless ref $search_opts && ref $search_opts eq 'HASH';
30              
31 0         0 %extra_opts = %{$search_opts};
  0         0  
32 0         0 $url = 'rating/_search';
33             } else {
34 1         113 croak $error;
35             }
36             } else {
37 1         161 croak $error;
38             }
39              
40 0           return $self->fetch( $url, %extra_opts );
41             }
42              
43             1;
44              
45             __END__