line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package CatalystX::ASP::Role; |
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
1304117
|
use Moose::Role; |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
8
|
|
4
|
|
|
|
|
|
|
|
5
|
|
|
|
|
|
|
=head1 NAME |
6
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
|
CatalystX::ASP::Role - Catalyst Role to plug-in the ASP View |
8
|
|
|
|
|
|
|
|
9
|
|
|
|
|
|
|
=head1 SYNOPSIS |
10
|
|
|
|
|
|
|
|
11
|
|
|
|
|
|
|
package MyApp; |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
use Moose; |
14
|
|
|
|
|
|
|
use Catalyst; |
15
|
|
|
|
|
|
|
extends 'Catalyst'; |
16
|
|
|
|
|
|
|
|
17
|
|
|
|
|
|
|
with 'CatalystX::ASP::Role'; |
18
|
|
|
|
|
|
|
|
19
|
|
|
|
|
|
|
=head1 DESCRIPTION |
20
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
Compose this role in your main application class. This will inject the ASP View |
22
|
|
|
|
|
|
|
as View component in your app called 'ASP', accessible via |
23
|
|
|
|
|
|
|
C<< $c->view('ASP') >>. It will also add a C<DispatchType> which will direct all |
24
|
|
|
|
|
|
|
requests with C<.asp> extension to the View. |
25
|
|
|
|
|
|
|
|
26
|
|
|
|
|
|
|
=head1 METHODS |
27
|
|
|
|
|
|
|
|
28
|
|
|
|
|
|
|
=over |
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
=item before 'setup_components' |
31
|
|
|
|
|
|
|
|
32
|
|
|
|
|
|
|
Inject C<CatalystX::ASP::View> component as a View for your app |
33
|
|
|
|
|
|
|
|
34
|
|
|
|
|
|
|
=cut |
35
|
|
|
|
|
|
|
|
36
|
|
|
|
|
|
|
# Inject our View |
37
|
|
|
|
|
|
|
before 'setup_components' => sub { |
38
|
|
|
|
|
|
|
my $class = shift; |
39
|
|
|
|
|
|
|
|
40
|
|
|
|
|
|
|
$class->inject_components( |
41
|
|
|
|
|
|
|
'View::ASP' => { |
42
|
|
|
|
|
|
|
from_component => 'CatalystX::ASP::View', |
43
|
|
|
|
|
|
|
} |
44
|
|
|
|
|
|
|
); |
45
|
|
|
|
|
|
|
|
46
|
|
|
|
|
|
|
}; |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
# Load ASP object and Global objects during setup |
49
|
|
|
|
|
|
|
after 'setup_components' => sub { |
50
|
|
|
|
|
|
|
my $class = shift; |
51
|
|
|
|
|
|
|
|
52
|
|
|
|
|
|
|
my $asp = CatalystX::ASP->new( |
53
|
|
|
|
|
|
|
%{ $class->config->{'CatalystX::ASP'} }, |
54
|
|
|
|
|
|
|
c => $class, |
55
|
|
|
|
|
|
|
_setup_finished => 0, |
56
|
|
|
|
|
|
|
); |
57
|
|
|
|
|
|
|
$class->view( 'ASP' )->asp( $asp ); |
58
|
|
|
|
|
|
|
}; |
59
|
|
|
|
|
|
|
|
60
|
|
|
|
|
|
|
# Keep own copy of setup_finished |
61
|
|
|
|
|
|
|
before 'setup_finalize' => sub { |
62
|
|
|
|
|
|
|
my ( $class ) = @_; |
63
|
|
|
|
|
|
|
|
64
|
|
|
|
|
|
|
my $asp = $class->view( 'ASP' )->asp; |
65
|
|
|
|
|
|
|
$asp->cleanup; |
66
|
|
|
|
|
|
|
$asp->_setup_finished( 1 ); |
67
|
|
|
|
|
|
|
}; |
68
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
=item after 'setup_dispatcher' |
70
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
Load C<CatalystX::ASP::Dispatcher> as a C<DispatchType> for your app |
72
|
|
|
|
|
|
|
|
73
|
|
|
|
|
|
|
=cut |
74
|
|
|
|
|
|
|
|
75
|
|
|
|
|
|
|
# Register our DispatchType |
76
|
|
|
|
|
|
|
after 'setup_dispatcher' => sub { |
77
|
|
|
|
|
|
|
my $c = shift; |
78
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
# Add our dispatcher |
80
|
|
|
|
|
|
|
push @{ $c->dispatcher->preload_dispatch_types }, '+CatalystX::ASP::Dispatcher'; |
81
|
|
|
|
|
|
|
}; |
82
|
|
|
|
|
|
|
|
83
|
1
|
|
|
1
|
|
3749
|
no Moose::Role; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
4
|
|
84
|
|
|
|
|
|
|
|
85
|
|
|
|
|
|
|
1; |
86
|
|
|
|
|
|
|
|
87
|
|
|
|
|
|
|
=back |
88
|
|
|
|
|
|
|
|
89
|
|
|
|
|
|
|
=head1 SEE ALSO |
90
|
|
|
|
|
|
|
|
91
|
|
|
|
|
|
|
=over |
92
|
|
|
|
|
|
|
|
93
|
|
|
|
|
|
|
=item * L<CatalystX::ASP::View> |
94
|
|
|
|
|
|
|
|
95
|
|
|
|
|
|
|
=item * L<CatalystX::ASP::Dispatcher> |
96
|
|
|
|
|
|
|
|
97
|
|
|
|
|
|
|
=back |