diff Lib/IMPL/Web/QueryHandler/PathInfoRewrite.pm @ 161:47c9877ccacc

Added a handler for rewriting a PATH_INFO value, useful with a json handlers
author wizard
date Tue, 28 Dec 2010 14:58:17 +0300
parents
children 4267a2ac3d46
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/IMPL/Web/QueryHandler/PathInfoRewrite.pm	Tue Dec 28 14:58:17 2010 +0300
@@ -0,0 +1,26 @@
+package IMPL::Web::QueryHandler::PathInfoRewrite;
+use strict;
+
+use base qw(IMPL::Web::QueryHandler);
+__PACKAGE__->PassThroughArgs;
+
+use IMPL::Class::Property;
+
+BEGIN {
+	public property pathinfoPrefix => prop_all;
+}
+
+sub Process {
+	my ($this,$query,$nextHandler) = @_;
+	
+	my $pathInfo = $ENV{PATH_INFO};
+	if (my $rx = $this->pathinfoPrefix) {
+		$pathInfo =~ s/^($rx)//;
+	}
+	
+	local $ENV{PATH_INFO} = $pathInfo;
+	
+	scalar $nextHandler->();
+}
+
+1;
\ No newline at end of file