[Repoze-checkins] r1237 - in repoze.bfg/trunk/repoze/bfg: . sampleapp
Chris McDonough
chrism at agendaless.com
Mon Jul 7 01:07:09 EDT 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Mon Jul 7 01:07:09 2008
New Revision: 1237
Log:
Add a sample app.
Added:
repoze.bfg/trunk/repoze/bfg/sampleapp/
repoze.bfg/trunk/repoze/bfg/sampleapp/__init__.py (contents, props changed)
repoze.bfg/trunk/repoze/bfg/sampleapp/app.py (contents, props changed)
Modified:
repoze.bfg/trunk/repoze/bfg/router.py
Modified: repoze.bfg/trunk/repoze/bfg/router.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/router.py (original)
+++ repoze.bfg/trunk/repoze/bfg/router.py Mon Jul 7 01:07:09 2008
@@ -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 @@
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)
+
Added: repoze.bfg/trunk/repoze/bfg/sampleapp/__init__.py
==============================================================================
--- (empty file)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/__init__.py Mon Jul 7 01:07:09 2008
@@ -0,0 +1 @@
+# a package
Added: repoze.bfg/trunk/repoze/bfg/sampleapp/app.py
==============================================================================
--- (empty file)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/app.py Mon Jul 7 01:07:09 2008
@@ -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')
+
More information about the Repoze-checkins
mailing list