Added recursive -r flag to prove example
[catagits/Catalyst-Runtime.git] / lib / Catalyst / Engine / Apache / MP19 / Apreq.pm
CommitLineData
566ee5d7 1package Catalyst::Engine::Apache::MP19::Apreq;
316bf0f0 2
3use strict;
4use base 'Catalyst::Engine::Apache::MP19::Base';
5
6use Apache::Request ();
7use Apache::Upload ();
8
9=head1 NAME
10
566ee5d7 11Catalyst::Engine::Apache::MP19::Apreq - Apreq class for MP 1.9 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 1.99.
20
21=head1 OVERLOADED METHODS
22
23This class overloads some methods from C<Catalyst::Engine::Apache::MP19::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 $c->apache->param->do( sub {
37 my ( $field, $value ) = @_;
38 push( @params, $field, $value );
39 return 1;
40 });
41
42 $c->request->param(@params);
43}
44
45=item $c->prepare_request($r)
46
47=cut
48
49sub prepare_request {
50 my ( $c, $r ) = @_;
51 $c->apache( Apache::Request->new($r) );
52}
53
54=item $c->prepare_uploads
55
56=cut
57
58sub prepare_uploads {
59 my $c = shift;
60
61 # This is a workaround for a know bug with libapreq <= 2.0.4
62 # http://svn.apache.org/viewcvs.cgi?rev=122925&view=rev
63
64 my @uploads;
65
66 for my $field ( $c->request->param ) {
67
68 for my $upload ( $c->apache->upload($field) ) {
69
70 my $object = Catalyst::Request::Upload->new(
71 filename => $upload->filename,
72 size => $upload->size,
73 tempname => $upload->tempname,
74 type => $upload->type
75 );
76
77 push( @uploads, $field, $object );
78 }
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::MP19::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;