view 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 source

"""
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)