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