From ee909e265b40743479ca2f3e8b518f76c91f83f8 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sat, 28 Apr 2012 22:54:45 +1200 Subject: Add a shortcut for setting Location header. --- libpathod/rparse.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'libpathod/rparse.py') diff --git a/libpathod/rparse.py b/libpathod/rparse.py index 4f7cc12d..b47681cc 100644 --- a/libpathod/rparse.py +++ b/libpathod/rparse.py @@ -211,6 +211,26 @@ class ShortcutContentType: return e.setParseAction(lambda x: klass(*x)) + +class ShortcutLocation: + def __init__(self, value): + self.value = value + + def mod_response(self, settings, r): + r.headers.append( + ( + LiteralGenerator("Location"), + self.value.get_generator(settings) + ) + ) + + @classmethod + def expr(klass): + e = pp.Literal("l").suppress() + e = e + Value + return e.setParseAction(lambda x: klass(*x)) + + class Body: def __init__(self, value): self.value = value @@ -332,6 +352,7 @@ class Response: DisconnectBefore, DisconnectRandom, ShortcutContentType, + ShortcutLocation, ) version = "HTTP/1.1" code = 200 -- cgit v1.2.3