use Maypole::Headers;
use Maypole::Constants;
-our $VERSION = '2.10';
+our $VERSION = '2.11';
-__PACKAGE__->mk_accessors( qw( cgi ) );
+__PACKAGE__->mk_accessors( qw/cgi/ );
=head1 NAME
$r->headers_in->set($field_name => $cgi->http($http_header));
}
+ $self->preprocess_location();
+
my $path = $cgi->url( -absolute => 1, -path_info => 1 );
my $loc = $cgi->url( -absolute => 1 );
{
no warnings 'uninitialized';
$path .= '/' if $path eq $loc;
- $path =~ s/^($loc)?\///;
+ if ($loc =~ /\/$/) {
+ $path =~ s/^($loc)?//;
+ } else {
+ $path =~ s/^($loc)?\///;
+ }
}
$r->path($path);
$r->parse_args;
}
+=item warn
+
+=cut
+
+sub warn {
+ my ($self,@args) = @_;
+ my ($package, $line) = (caller)[0,2];
+ warn "[$package line $line] ", @args ;
+ return;
+}
+
=item parse_args
=cut
=item send_output
+Generates output (using C<collect_output>) and prints it.
+
=cut
sub send_output
{
my $r = shift;
+ print $r->collect_output;
+}
+=item collect_output
+
+Gathers headers and output together into a string and returns it.
+
+Splitting this code out of C<send_output> supports L<Maypole::HTTPD::Frontend>.
+
+=cut
+
+sub collect_output
+{
+ my $r = shift;
+
# Collect HTTP headers
my %headers = (
-type => $r->content_type,
$headers{"-$_"} = $r->headers_out->get($_);
}
- print $r->cgi->header(%headers), $r->output;
+ return $r->cgi->header(%headers) . $r->output;
}
=item get_template_root