view wsgintegrate/dispatcher.py @ 1:fb4a692e2571

list out most currently interesting apps for the future
author Jeff Hammel <jhammel@mozilla.com>
date Sat, 11 Jun 2011 22:37:32 -0700
parents ec815b7cb142
children 88b611ed2c5e
line wrap: on
line source

"""
multi-application dispatcher for WSGI apps
"""

from webob import Request
from webob import exc

class Dispatcher(object):

  def __init__(self, *apps):
    self.apps = apps
    self.codes = set([404])

  def __call__(self, environ, start_response):
    request = Request(environ)
    for app in self.apps:
      try:
        response = request.get_response(app)
        if response.status_int in self.codes:
          continue
        break
      except exc.HTTPNotFound:
        continue
    else:
      response = exc.HTTPNotFound()
    return response(environ, start_response)