=head1 NAME
APR::Emulate::PSGI - Class that Emulates the mod_perl2 APR Object (Apache2::RequestRec, et al)
=head1 SYNOPSIS
use APR::Emulate::PSGI;
my $r = APR::Emulate::PSGI->new($psgi_env);
# Or in a CGI environment:
my $r = APR::Emulate::PSGI->new();
=head1 DESCRIPTION
This class emulates the mod_perl2 APR object. It expects either a
PSGI environment hashref to be passed in, or to read HTTP environment
information from the global %ENV.
Currently this module is little more than a proof of concept. There
are rough edges.
Use at your own discretion. Contributions welcome.
=cut
=head1 METHODS
=over 4
=item new
Creates an object that emulates the mod_perl2 APR object.
my $r = APR::Emulate::PSGI->new($psgi_env);
HTTP environment information is read from the PSGI environment that is
passed in as a parameter. If no PSGI environment is supplied,
environment information is read from the global %ENV.
=cut
=item psgi_status
Returns the numeric HTTP response that should be used when building
a PSGI response.
my $status = $r->psgi_status();
The value is determined by looking at the current value of L</status_line>,
or if that is not set, the current value of L</status>, or if that is not
set, defaults to 200.
=cut
=item psgi_headers
Returns an arrayref of headers which can be used when building a PSGI
response.
A Content-Length header is not included, and must be added in accordance
with the L<PSGI> specification, while building the PSGI response.
my $headers_arrayref = $r->psgi_headers();
=cut
=back
=head2 Request Methods
=over 4
=item headers_in
Emulates L<Apache2::RequestRec/headers_in>.
=cut
=item method
Emulates L<Apache2::RequestRec/method>.
=cut
=item uri
Emulates L<Apache2::RequestRec/uri>.
=cut
=item parsed_uri
Emulates L<Apache2::URI/parsed_uri>.
=cut
=item args
Emulates L<Apache2::RequestRec/args>.
=cut
=item read
Emulates L<Apache2::RequestIO/read>.
=cut
=item pool
Emulates L<Apache2::RequestRec/pool>.
=cut
=back
=head2 Response Methods
=over 4
=item headers_out
Emulates L<Apache2::RequestRec/headers_out>.
=cut
=item err_headers_out
Emulates L<Apache2::RequestRec/err_headers_out>.
=cut
=item no_cache
Emulates L<Apache2::RequestUtil/no_cache>.
=cut
=item status
Emulates L<Apache2::RequestRec/status>.
=cut
=item status_line
Emulates L<Apache2::RequestRec/status_line>.
=cut
=item content_type
Emulates L<Apache2::RequestRec/content_type>.
If no PSGI enviroment is provided to L</new>, calling this
method with a parameter will cause HTTP headers to be sent.
=cut
=item print
Emulates L<Apache2::RequestIO/print>.
=cut
=item rflush
Emulates L<Apache2::RequestIO/rflush>.
=cut
=back
=cut
=head1 SEE ALSO
=over 4
=item Plack
=item CGI::Emulate::PSGI
=back
=head1 AUTHOR
Nathan Gray, E<lt>
[email protected]<gt>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2013, 2014 by Nathan Gray
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.14.2 or,
at your option, any later version of Perl 5 you may have available.
=cut