diff webob_view/template/+package+/dispatcher.py @ 5:f70d8f3aee51

allow app argument to allow use as middleware OOTB
author k0s <k0scist@gmail.com>
date Sun, 27 Dec 2009 16:38:50 -0500
parents 4dcb932065e4
children
line wrap: on
line diff
--- a/webob_view/template/+package+/dispatcher.py	Mon Nov 02 17:50:39 2009 -0500
+++ b/webob_view/template/+package+/dispatcher.py	Sun Dec 27 16:38:50 2009 -0500
@@ -8,12 +8,14 @@
 class Dispatcher(object):
 
     ### class level variables
-    defaults = {}
+    defaults = { 'app': None}
 
     def __init__(self, **kw):
         for key in self.defaults:
             setattr(self, key, kw.get(key, self.defaults[key]))
         self.handlers = [ Get, Post ]
+        if self.app:
+            assert hasattr(self.app, '__call__')
 
     ### methods dealing with HTTP
     def __call__(self, environ, start_response):
@@ -23,6 +25,8 @@
                 handler = h(request)
                 break
         else:
+            if self.app:
+                return self.app(environ, start_response)
             handler = exc.HTTPNotFound
         res = handler()
         return res(environ, start_response)