summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--repoze/bfg/interfaces.py7
-rw-r--r--repoze/bfg/router.py9
2 files changed, 14 insertions, 2 deletions
diff --git a/repoze/bfg/interfaces.py b/repoze/bfg/interfaces.py
index 16a4a7b21..196809437 100644
--- a/repoze/bfg/interfaces.py
+++ b/repoze/bfg/interfaces.py
@@ -75,6 +75,13 @@ class IViewPermissionFactory(Interface):
def __call__(context, request):
""" Return an IViewPermission """
+class IRouter(Interface):
+ """WSGI application which routes requests to 'view' code based on
+ a view registry."""
+
+ registry = interface.Attribute(
+ """Component architecture registry local to this application.""")
+
class IRoutesContext(Interface):
""" A context (model instance) that is created as a result of URL
dispatching"""
diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py
index ab8850110..2adc461ca 100644
--- a/repoze/bfg/router.py
+++ b/repoze/bfg/router.py
@@ -1,6 +1,6 @@
from zope.component import getAdapter
from zope.component.event import dispatch
-from zope.interface import directlyProvides
+from zope.interface import directlyProvides, implements
from webob import Request
from webob.exc import HTTPNotFound
@@ -12,6 +12,8 @@ from repoze.bfg.events import WSGIApplicationCreatedEvent
from repoze.bfg.interfaces import ITraverserFactory
from repoze.bfg.interfaces import IRequest
+from repoze.bfg.interfaces import IRequest
+from repoze.bfg.interfaces import IRouter
from repoze.bfg.registry import registry_manager
from repoze.bfg.registry import makeRegistry
@@ -23,9 +25,12 @@ from repoze.bfg.view import render_view_to_response
_marker = ()
-class Router:
+class Router(object):
""" WSGI application which routes requests to 'view' code based on
a view registry"""
+
+ implements(IRouter)
+
def __init__(self, root_policy, registry):
self.root_policy = root_policy
self.registry = registry