File Coverage

blib/lib/GraphQL/Role/Listable.pm
Criterion Covered Total %
statement 18 18 100.0
branch n/a
condition n/a
subroutine 7 7 100.0
pod n/a
total 25 25 100.0


line stmt bran cond sub pod time code
1             package GraphQL::Role::Listable;
2              
3 18     18   52343 use 5.014;
  18         69  
4 18     18   122 use strict;
  18         72  
  18         386  
5 18     18   78 use warnings;
  18         55  
  18         599  
6 18     18   93 use Types::Standard -all;
  18         35  
  18         133  
7 18     18   799052 use Moo::Role;
  18         54  
  18         217  
8 18     18   25395 use GraphQL::Type::List;
  18         54  
  18         149  
9              
10             our $VERSION = '0.02';
11              
12             =head1 NAME
13              
14             GraphQL::Role::Listable - GraphQL object role
15              
16             =head1 SYNOPSIS
17              
18             with qw(GraphQL::Role::Listable);
19              
20             # or runtime
21             Role::Tiny->apply_roles_to_object($foo, qw(GraphQL::Role::Listable));
22              
23             =head1 DESCRIPTION
24              
25             Provides shortcut method for getting a type object's list wrapper.
26              
27             =head1 METHODS
28              
29             =head2 list
30              
31             Returns a wrapped version of the type using L<GraphQL::Type::List>.
32              
33             =cut
34              
35             has list => (
36             is => 'lazy',
37             isa => InstanceOf['GraphQL::Type::List'],
38 122     122   177132 builder => sub { GraphQL::Type::List->new(of => $_[0]) },
39             );
40              
41             __PACKAGE__->meta->make_immutable();
42              
43             1;