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