Added recursive -r flag to prove example
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / Apache / MP20 / Apreq.pm
CommitLineData
566ee5d7 1package Catalyst::Engine::Apache::MP20::Apreq;
316bf0f0 2
3use strict;
4use base 'Catalyst::Engine::Apache::MP20::Base';
5
6use Apache2::Request ();
7use Apache2::Upload ();
8
9=head1 NAME
10
566ee5d7 11Catalyst::Engine::Apache::MP20::Apreq - Apreq class for MP 2.0 Engines
316bf0f0 12
13=head1 SYNOPSIS
14
15See L<Catalyst>.
16
17=head1 DESCRIPTION
18
19This is the Catalyst engine specialized for Apache mod_perl version 2.0.
20
21=head1 OVERLOADED METHODS
22
23This class overloads some methods from C<Catalyst::Engine::Apache::MP20::Base>.
24
25=over 4
26
27=item $c->prepare_parameters
28
29=cut
30
31sub prepare_parameters {
32 my $c = shift;
33
34 my @params;
35
36 if ( my $table = $c->apache->param ) {
37
38 $table->do( sub {
39 my ( $field, $value ) = @_;
40 push( @params, $field, $value );
41 return 1;
42 });
43
44 $c->request->param(@params);
45 }
46}
47
48=item $c->prepare_request($r)
49
50=cut
51
52sub prepare_request {
53 my ( $c, $r ) = @_;
54 $c->apache( Apache2::Request->new($r) );
55}
56
57=item $c->prepare_uploads
58
59=cut
60
61sub prepare_uploads {
62 my $c = shift;
63
64 my @uploads;
65
66 $c->apache->upload->do( sub {
67 my ( $field, $upload ) = @_;
68
69 my $object = Catalyst::Request::Upload->new(
70 filename => $upload->filename,
71 size => $upload->size,
72 tempname => $upload->tempname,
73 type => $upload->type
74 );
75
76 push( @uploads, $field, $object );
77
78 return 1;
79 });
80
81 $c->request->upload(@uploads);
82}
83
84=back
85
86=head1 SEE ALSO
87
88L<Catalyst>, L<Catalyst::Engine>, L<Catalyst::Engine::Apache::MP20::Base>.
89
90=head1 AUTHOR
91
92Sebastian Riedel, C<sri@cpan.org>
93Christian Hansen C<ch@ngmedia.com>
94
95=head1 COPYRIGHT
96
97This program is free software, you can redistribute it and/or modify it under
98the same terms as Perl itself.
99
100=cut
101
1021;