Commit | Line | Data |
---|---|---|
01183e70 | 1 | package Web::Simple::Role; |
1d1a78c8 | 2 | use strictures 1; |
1d1a78c8 | 3 | use warnings::illegalproto (); |
4 | use Moo::Role (); | |
5 | ||
34b7e02f | 6 | our $VERSION = '0.029'; |
1d1a78c8 | 7 | |
8 | sub import { | |
9 | my ($class, $app_package) = @_; | |
10 | $app_package ||= caller; | |
11 | eval "package $app_package; use Web::Dispatch::Wrapper; use Moo::Role; 1" | |
12 | or die "Failed to setup app package: $@"; | |
13 | strictures->import; | |
14 | warnings::illegalproto->unimport; | |
15 | } | |
16 | ||
17 | 1; | |
18 | __END__ | |
01183e70 | 19 | |
20 | =head1 NAME | |
21 | ||
1d1a78c8 | 22 | Web::Simple::Role - Define roles for Web::Simple applications |
01183e70 | 23 | |
24 | =head1 SYNOPSIS | |
25 | ||
26 | package MyApp; | |
27 | use Web::Simple; | |
28 | with MyApp::Role; | |
1d1a78c8 | 29 | |
01183e70 | 30 | sub dispatch_request { ... } |
31 | ||
32 | and in the role: | |
33 | ||
34 | package MyApp::Role; | |
35 | use Web::Simple::Role; | |
36 | ||
37 | around dispatch_request => sub { | |
38 | my ($orig, $self) = @_; | |
39 | return ( | |
40 | $self->$orig, | |
41 | sub (GET + /baz) { ... } | |
42 | ); | |
43 | }; | |
44 | ||
45 | Now C<MyApp> can also dispatch C</baz> | |
46 | ||
1d1a78c8 | 47 | =head1 AUTHORS |
01183e70 | 48 | |
1d1a78c8 | 49 | See L<Web::Simple> for authors. |
01183e70 | 50 | |
1d1a78c8 | 51 | =head1 COPYRIGHT AND LICENSE |
01183e70 | 52 | |
1d1a78c8 | 53 | See L<Web::Simple> for the copyright and license. |
01183e70 | 54 | |
55 | =cut |