clean up Web::Simple::Role pod
[catagits/Web-Simple.git] / lib / Web / Simple / Role.pm
1 package Web::Simple::Role;
2 use strictures 1;
3 use 5.008;
4 use warnings::illegalproto ();
5 use Moo::Role ();
6
7 our $VERSION = '0.020';
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__
20
21 =head1 NAME
22
23 Web::Simple::Role - Define roles for Web::Simple applications
24
25 =head1 SYNOPSIS
26
27   package MyApp;
28   use Web::Simple;
29   with MyApp::Role;
30
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
48 =head1 AUTHORS
49
50 See L<Web::Simple> for authors.
51
52 =head1 COPYRIGHT AND LICENSE
53
54 See L<Web::Simple> for the copyright and license.
55
56 =cut