summaryrefslogtreecommitdiff
path: root/repoze/bfg/router.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-11-20 05:38:38 +0000
committerChris McDonough <chrism@agendaless.com>2009-11-20 05:38:38 +0000
commit15a3c6f561563eb53ff1cc3637fc6afa75da9e89 (patch)
tree94134ee3c1099c30cae283d4cb7e1a8d68db45bf /repoze/bfg/router.py
parent601e038028655549d23f8eda1c21cb0034724771 (diff)
downloadpyramid-15a3c6f561563eb53ff1cc3637fc6afa75da9e89.tar.gz
pyramid-15a3c6f561563eb53ff1cc3637fc6afa75da9e89.tar.bz2
pyramid-15a3c6f561563eb53ff1cc3637fc6afa75da9e89.zip
Passable stab at supporting an imperative mode.
ZCML directives which accept paths now register absolute paths, while imperative registrations now register resource specifications.
Diffstat (limited to 'repoze/bfg/router.py')
-rw-r--r--repoze/bfg/router.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py
index a46232330..16c273012 100644
--- a/repoze/bfg/router.py
+++ b/repoze/bfg/router.py
@@ -18,6 +18,7 @@ from repoze.bfg.events import NewRequest
from repoze.bfg.events import NewResponse
from repoze.bfg.exceptions import Forbidden
from repoze.bfg.exceptions import NotFound
+from repoze.bfg.resource import resolve_resource_spec
from repoze.bfg.request import Request
from repoze.bfg.threadlocal import manager
from repoze.bfg.traversal import DefaultRootFactory
@@ -193,8 +194,13 @@ def make_app(root_factory, package=None, filename='configure.zcml',
from repoze.bfg.configuration import Configurator # pragma: no cover
settings = settings or options
config = Configurator()
- config.declarative(root_factory, package=package,
- filename=filename, settings=settings)
+ package_name = package and package.__name__ or None
+ package_name, filename = resolve_resource_spec(filename, package_name)
+ if package_name is not None:
+ spec = '%s:%s' % (package_name, filename)
+ else:
+ spec = filename
+ config.declarative(root_factory, spec, settings=settings)
app = config.make_wsgi_app()
return app