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   54219 use 5.014;
  18         103  
4 18     18   127 use strict;
  18         38  
  18         389  
5 18     18   88 use warnings;
  18         60  
  18         544  
6 18     18   102 use Types::Standard -all;
  18         39  
  18         111  
7 18     18   838079 use Moo::Role;
  18         42  
  18         171  
8 18     18   22673 use GraphQL::Type::List;
  18         66  
  18         120  
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   213357 builder => sub { GraphQL::Type::List->new(of => $_[0]) },
39             );
40              
41             __PACKAGE__->meta->make_immutable();
42              
43             1;