diff options
Diffstat (limited to 'repoze/bfg/router.py')
| -rw-r--r-- | repoze/bfg/router.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py new file mode 100644 index 000000000..049430723 --- /dev/null +++ b/repoze/bfg/router.py @@ -0,0 +1,14 @@ +from zope.component import getAdapter +from repoze.bfg.interfaces import IWSGIApplication + +class Router: + def __init__(self, app, policy): + self.app = app + self.policy = policy + + def __call__(self, environ, start_response): + context, name, subpath = self.policy(environ) + app = getAdapter(context, IWSGIApplication, name) + environ['repoze.bfg.context'] = context + environ['repoze.bfg.subpath'] = subpath + return app(environ, start_response) |
