make bump
[catagits/Web-Simple.git] / lib / Web / Simple / Role.pm
CommitLineData
01183e70 1package Web::Simple::Role;
1d1a78c8 2use strictures 1;
1d1a78c8 3use warnings::illegalproto ();
4use Moo::Role ();
5
4061606f 6our $VERSION = '0.028';
1d1a78c8 7
8sub 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
171;
18__END__
01183e70 19
20=head1 NAME
21
1d1a78c8 22Web::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
32and 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
45Now C<MyApp> can also dispatch C</baz>
46
1d1a78c8 47=head1 AUTHORS
01183e70 48
1d1a78c8 49See L<Web::Simple> for authors.
01183e70 50
1d1a78c8 51=head1 COPYRIGHT AND LICENSE
01183e70 52
1d1a78c8 53See L<Web::Simple> for the copyright and license.
01183e70 54
55=cut