File Coverage

blib/lib/Dancer2/Plugin/JsonApi.pm
Criterion Covered Total %
statement 23 31 74.1
branch 2 4 50.0
condition n/a
subroutine 6 8 75.0
pod 0 2 0.0
total 31 45 68.8


line stmt bran cond sub pod time code
1             # ABSTRACT: JsonApi helpers for Dancer2 apps
2              
3 2     2   1604366 use 5.38.0;
  2         11  
4              
5             package Dancer2::Plugin::JsonApi;
6             our $AUTHORITY = 'cpan:YANICK';
7             $Dancer2::Plugin::JsonApi::VERSION = '0.0.1';
8 2     2   1997 use Dancer2::Plugin::JsonApi::Registry;
  2         11  
  2         97  
9 2     2   2125 use Dancer2::Plugin;
  2         325940  
  2         37  
10 2     2   47717 use Dancer2::Serializer::JsonApi;
  2         23  
  2         410  
11              
12             has registry => (
13             plugin_keyword => 'jsonapi_registry',
14             is => 'ro',
15             default => sub ($self) {
16             Dancer2::Plugin::JsonApi::Registry->new( app => $self->app );
17             }
18             );
19              
20 0     0 0 0 sub jsonapi : PluginKeyword ( $plugin, $type, $sub ) {
  0         0  
  0         0  
  0         0  
  0         0  
21              
22             return sub {
23 0     0   0 my $result = $sub->();
24              
25             return [
26 0         0 $type => $result,
27             { vars => $plugin->app->request->vars,
28             request => $plugin->app->request
29             }
30             ];
31 0         0 };
32 2     2   17 }
  2         4  
  2         18  
33              
34 1     1 0 69 sub BUILD ( $self, @ ) {
  1         1  
  1         2  
35 1         2 my $serializer = eval {
36 1         18 $self->app->serializer_engine
37             };
38              
39 1 50       345 unless ($serializer) {
40 1         5 $self->app->set_serializer_engine(
41             Dancer2::Serializer::JsonApi->new );
42 1         126 $serializer = $self->app->serializer_engine;
43              
44             }
45              
46 1 50       38 $serializer->registry( $self->registry )
47             if ref $serializer eq 'Dancer2::Serializer::JsonApi';
48             }
49              
50             1;
51              
52             __END__