use base 'Catalyst::Engine';
use NEXT;
use URI;
-use URI::Query;
+
+__PACKAGE__->mk_accessors( 'env' );
=head1 NAME
sub prepare_connection {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
$c->request->address( $ENV{REMOTE_ADDR} );
sub prepare_headers {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
# Read headers from %ENV
while ( my ( $header, $value ) = each %ENV ) {
sub prepare_path {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
my $scheme = $c->request->secure ? 'https' : 'http';
my $host = $ENV{HTTP_HOST} || $ENV{SERVER_NAME};
sub prepare_query_parameters {
my ( $self, $c ) = @_;
+ local(*ENV) = $self->env || \%ENV;
+
+ if ( $ENV{QUERY_STRING} ) {
+ $self->SUPER::prepare_query_parameters( $c, $ENV{QUERY_STRING} );
+ }
+}
+
+=item $self->prepare_request($c, (env => \%env))
- my $u = URI::Query->new( $ENV{QUERY_STRING} );
- $c->request->query_parameters( { $u->hash } );
+=cut
+
+sub prepare_request {
+ my ( $self, $c, %args ) = @_;
+
+ if ( $args{env} ) {
+ $self->env( $args{env} );
+ }
}
=item $self->prepare_write($c)