File Coverage

blib/lib/Articulate/Role/Component.pm
Criterion Covered Total %
statement 16 20 80.0
branch n/a
condition n/a
subroutine 10 14 71.4
pod 11 11 100.0
total 37 45 82.2


line stmt bran cond sub pod time code
1             package Articulate::Role::Component;
2 9     9   4421 use strict;
  9         17  
  9         326  
3 9     9   44 use warnings;
  9         14  
  9         220  
4 9     9   36 use Moo::Role;
  9         12  
  9         55  
5              
6             =head1 NAME
7              
8             Articulate::Role::Component - access the core app and other compnents
9              
10             =cut
11              
12             =head1 DESCRIPTION
13              
14             This role provides accessors so that components can refer to each other. In order to do so they must when created or first called, have their C attribute set.
15              
16             =head1 ATTRIBUTE
17              
18             =head3 app
19              
20             The Articulate app to which this component belongs.
21              
22             =head1 METHODS
23              
24             Each of these methods are simple read-only accessors which use the C attribute to find the relevant component.
25              
26             =head3 augmentation
27              
28             Provides access to the app's augmentation component.
29              
30             =head3 authentication
31              
32             Provides access to the app's authentication component.
33              
34             =head3 authorisation
35              
36             Provides access to the app's authorisation component.
37              
38             =head3 construction
39              
40             Provides access to the app's construction component.
41              
42             =head3 enrichment
43              
44             Provides access to the app's enrichment component.
45              
46             =head3 framework
47              
48             Provides access to the app's framework component.
49              
50             =head3 navigation
51              
52             Provides access to the app's navigation component.
53              
54             =head3 serialisation
55              
56             Provides access to the app's serialisation component.
57              
58             =head3 service
59              
60             Provides access to the app's service component.
61              
62             =head3 storage
63              
64             Provides access to the app's storage component.
65              
66             =head3 validation
67              
68             Provides access to the app's validation component.
69              
70             =cut
71              
72             has app => (
73             is => 'rw',
74             weak_ref => 1,
75             );
76              
77 3     3 1 14 sub augmentation { shift->app->components->{'augmentation'} }
78 0     0 1 0 sub authentication { shift->app->components->{'authentication'} }
79 4     4 1 17 sub authorisation { shift->app->components->{'authorisation'} }
80 8     8 1 39 sub construction { shift->app->components->{'construction'} }
81 2     2 1 9 sub enrichment { shift->app->components->{'enrichment'} }
82 0     0 1 0 sub framework { shift->app->components->{'framework'} }
83 101     101 1 318 sub navigation { shift->app->components->{'navigation'} }
84 0     0 1 0 sub serialisation { shift->app->components->{'serialisation'} }
85 0     0 1 0 sub service { shift->app->components->{'service'} }
86 10     10 1 3154 sub storage { shift->app->components->{'storage'} }
87 2     2 1 10 sub validation { shift->app->components->{'validation'} }
88              
89             1;