Mercurial > hg > webob_view
diff webob_view/template/+package+/dispatcher.py @ 2:4ebaf68f2272
moving to dispatcher as that's what it is now
author | k0s <k0scist@gmail.com> |
---|---|
date | Thu, 29 Oct 2009 15:11:05 -0400 |
parents | webob_view/template/+package+/+package+.py_tmpl@eb2cb7ebc849 |
children | 4dcb932065e4 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webob_view/template/+package+/dispatcher.py Thu Oct 29 15:11:05 2009 -0400 @@ -0,0 +1,26 @@ +""" +request dispatcher +""" + +from handlers import Get, Post +from webob import Request, exc + +class Dispatcher(object): + + ### class level variables + defaults = {} + + def __init__(self, **kw): + for key in self.defaults: + setattr(self, key, kw.get(key, self.defaults[key])) + self.handlers = [ Get, Post ] + + ### methods dealing with HTTP + def __call__(self, environ, start_response): + request = Request(environ) + for h in self.handlers: + if h.match(request): + handler = h(request) + break + res = handler() + return res(environ, start_response)