File Coverage

blib/lib/Pithub/SearchV3.pm
Criterion Covered Total %
statement 15 17 88.2
branch 4 8 50.0
condition n/a
subroutine 6 7 85.7
pod 4 4 100.0
total 29 36 80.5


line stmt bran cond sub pod time code
1             package Pithub::SearchV3;
2             our $AUTHORITY = 'cpan:PLU';
3             our $VERSION = '0.01043';
4              
5             # ABSTRACT: Github v3 Search API
6              
7 15     15   108 use Moo;
  15         32  
  15         98  
8 15     15   6471 use Carp qw( croak );
  15         34  
  15         5706  
9             extends 'Pithub::Base';
10              
11              
12             sub issues {
13 1     1 1 6277 my $self = shift;
14 1         7 return $self->_search( 'issues', @_ );
15             }
16              
17              
18             sub repos {
19 1     1 1 1017 my $self = shift;
20 1         4 return $self->_search( 'repositories', @_ );
21             }
22              
23              
24             sub users {
25 1     1 1 1033 my $self = shift;
26 1         4 return $self->_search( 'users', @_ );
27             }
28              
29              
30             sub code {
31 0     0 1 0 my $self = shift;
32 0         0 return $self->_search( 'code', @_ );
33             }
34              
35             sub _search {
36 3     3   43 my ( $self, $thing_to_search, %args ) = @_;
37 3 50       13 croak 'Missing key in parameters: q' unless exists $args{q};
38             return $self->request(
39             method => 'GET',
40             path => '/search/' . $thing_to_search,
41             query => {
42             q => delete $args{q},
43             ( exists $args{sort} ? ( sort => delete $args{sort} ) : () ),
44             ( exists $args{order} ? ( order => delete $args{order} ) : () ),
45 3 50       39 ( exists $args{per_page} ? ( per_page => delete $args{per_page} ) : () ),
    50          
    50          
46             },
47             %args,
48             );
49             }
50              
51             1;
52              
53             __END__