diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-07-07 05:07:09 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-07-07 05:07:09 +0000 |
| commit | 8251b8af234bfa172316d19350309728d89473e1 (patch) | |
| tree | 2eec8a409d50ee3997312d17a4536e8ffeab754b | |
| parent | 7de404bb4af2744a64c13e31a780fc0229b8f9e5 (diff) | |
| download | pyramid-8251b8af234bfa172316d19350309728d89473e1.tar.gz pyramid-8251b8af234bfa172316d19350309728d89473e1.tar.bz2 pyramid-8251b8af234bfa172316d19350309728d89473e1.zip | |
Add a sample app.
| -rw-r--r-- | repoze/bfg/router.py | 21 | ||||
| -rw-r--r-- | repoze/bfg/sampleapp/__init__.py | 1 | ||||
| -rw-r--r-- | repoze/bfg/sampleapp/app.py | 52 |
3 files changed, 68 insertions, 6 deletions
diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py index 4f73ddf32..98ea81e3f 100644 --- a/repoze/bfg/router.py +++ b/repoze/bfg/router.py @@ -1,4 +1,3 @@ -from zope.component import getGlobalSiteManager from zope.component import getMultiAdapter from zope.component import queryMultiAdapter from zope.interface import directlyProvides @@ -34,12 +33,22 @@ class Router: app = getMultiAdapter((app, request), IWSGIApplicationFactory) return app(environ, start_response) -def make_app(**config): - from repoze.bfg.traversal import NaivePublishTraverser - from repoze.bfg.wsgiadapter import NaiveWSGIViewAdapter +def make_app(root_policy, + default_publish_traverser_factory=None, + default_wsgi_application_factory=None + ): + if default_publish_traverser_factory is None: + from repoze.bfg.traversal import NaivePublishTraverser + default_publish_traverser_factory = NaivePublishTraverser + if default_wsgi_application_factory is None: + from repoze.bfg.wsgiadapter import NaiveWSGIViewAdapter + default_wsgi_application_factory = NaiveWSGIViewAdapter + from zope.component import getGlobalSiteManager gsm = getGlobalSiteManager() - gsm.registerAdapter(NaivePublishTraverser, (None, None), + gsm.registerAdapter(default_publish_traverser_factory, (None, None), IPublishTraverserFactory) - gsm.registerAdapter(NaiveWSGIViewAdapter, (None, None), + gsm.registerAdapter(default_wsgi_application_factory, (None, None), IWSGIApplicationFactory) + return Router(root_policy) + diff --git a/repoze/bfg/sampleapp/__init__.py b/repoze/bfg/sampleapp/__init__.py new file mode 100644 index 000000000..ef5fe8b12 --- /dev/null +++ b/repoze/bfg/sampleapp/__init__.py @@ -0,0 +1 @@ +# a package diff --git a/repoze/bfg/sampleapp/app.py b/repoze/bfg/sampleapp/app.py new file mode 100644 index 000000000..dbc77d501 --- /dev/null +++ b/repoze/bfg/sampleapp/app.py @@ -0,0 +1,52 @@ +from zope.interface import classProvides +from zope.interface import implements +from zope.interface import Interface + +from repoze.bfg.interfaces import IViewFactory +from repoze.bfg.interfaces import IView + +from webob import Response + +class IBlogModel(Interface): + pass + +class BlogModel: + implements(IBlogModel) + +class BlogDefaultView(object): + classProvides(IViewFactory) + implements(IView) + + def __init__(self, context, request): + self.context = context + self.request = request + + def __call__(self): + return Response('Hello world!') + +class BlogWooHooView(object): + classProvides(IViewFactory) + implements(IView) + + def __init__(self, context, request): + self.context = context + self.request = request + + def __call__(self): + return Response('Woo hoo!') + +if __name__ == '__main__': + from repoze.bfg.interfaces import IViewFactory + from repoze.bfg.interfaces import IRequest + from zope.component import getGlobalSiteManager + gsm = getGlobalSiteManager() + gsm.registerAdapter(BlogDefaultView, (IBlogModel, IRequest), IViewFactory) + gsm.registerAdapter(BlogWooHooView, (IBlogModel, IRequest), IViewFactory, + name='woohoo.html') + from repoze.bfg.router import make_app + def get_root(environ): + return {'blog':BlogModel()} + app = make_app(get_root) + from paste import httpserver + httpserver.serve(app, host='0.0.0.0', port='5432') + |
