b6cd35ff24934322c7591c76b881ae75490b3f04
[catagits/Web-Simple.git] / lib / Web / Simple / Role.pm
1 package Web::Simple::Role;
2
3 =head1 NAME
4
5 Web::Simple::Role
6
7 =head1 SYNOPSIS
8
9   package MyApp;
10   use Web::Simple;
11   with MyApp::Role;
12   
13   sub dispatch_request { ... }
14
15 and in the role:
16
17   package MyApp::Role;
18   use Web::Simple::Role;
19
20   around dispatch_request => sub {
21     my ($orig, $self) = @_;
22     return (
23       $self->$orig,
24       sub (GET + /baz) { ... }
25     );
26   };
27
28 Now C<MyApp> can also dispatch C</baz>
29
30 =cut
31
32 use strictures 1;
33 use 5.008;
34 use warnings::illegalproto ();
35 use Moo::Role ();
36
37 our $VERSION = '0.020';
38
39 sub import {
40   my ($class, $app_package) = @_;
41   $app_package ||= caller;
42   eval "package $app_package; use Web::Dispatch::Wrapper; use Moo::Role; 1"
43     or die "Failed to setup app package: $@";
44   strictures->import;
45   warnings::illegalproto->unimport;
46 }
47
48 =head1 AUTHOR
49
50 osfameron@cpan.org
51
52 =cut
53
54 1;