/usr/share/perl5/Dancer2/Handler/AutoPage.pm is in libdancer2-perl 0.152000+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | package Dancer2::Handler::AutoPage;
# ABSTRACT: Class for handling the AutoPage feature
$Dancer2::Handler::AutoPage::VERSION = '0.152000';
use Moo;
use Carp 'croak';
use Dancer2::Core::Types;
with 'Dancer2::Core::Role::Handler';
with 'Dancer2::Core::Role::StandardResponses';
sub register {
my ( $self, $app ) = @_;
return unless $app->config->{auto_page};
$app->add_route(
method => $_,
regexp => $self->regexp,
code => $self->code,
) for $self->methods;
}
sub code {
sub {
my $app = shift;
my $prefix = shift;
my $page = $app->request->path_info;
my $template = $app->engine('template');
if ( !defined $template ) {
$app->response->has_passed(1);
return;
}
my $view_path = $template->view_pathname($page);
if ( !-f $view_path ) {
$app->response->has_passed(1);
return;
}
my $ct = $template->process( $page );
$app->response->header( 'Content-Length', length($ct) );
return ( $app->request->method eq 'GET' ) ? $ct : '';
};
}
sub regexp {'/**'}
sub methods {qw(head get)}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
Dancer2::Handler::AutoPage - Class for handling the AutoPage feature
=head1 VERSION
version 0.152000
=head1 DESCRIPTION
The AutoPage feature is a Handler (turned off by default) that is
responsible for serving pages that match an existing template. If a
view exists with a name that matches the requested path, Dancer2
processes the request using the Autopage handler.
To turn it add to your config file:
auto_page: 1
This allows you to easily serve simple pages without having to write a
route definition for them.
If there's no view with the name request, the route passes, allowing
other matching routes to be dispatched.
=head1 METHODS
=head2 register
Creates the routes.
=head2 code
A code reference that processes the route request.
=head2 methods
The methods that should be served for autopages.
Default: B<head>, B<get>.
=head2 regexp
The regexp (path) we want to match.
Default: B</:page>.
=head1 AUTHOR
Dancer Core Developers
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2014 by Alexis Sukrieh.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut
|