summaryrefslogtreecommitdiff
path: root/repoze/bfg/sampleapp
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-07-07 22:52:39 +0000
committerChris McDonough <chrism@agendaless.com>2008-07-07 22:52:39 +0000
commit703422d397607eefb5fe695c657e5b59991ed9c1 (patch)
tree0748952da7e533e45fe8c340869514d57c317dc6 /repoze/bfg/sampleapp
parent3b8c3155656c694cf9c2dd84a96d758b324f7b83 (diff)
downloadpyramid-703422d397607eefb5fe695c657e5b59991ed9c1.tar.gz
pyramid-703422d397607eefb5fe695c657e5b59991ed9c1.tar.bz2
pyramid-703422d397607eefb5fe695c657e5b59991ed9c1.zip
Depend on z3c.pt.
Use ZCML to configure applications.
Diffstat (limited to 'repoze/bfg/sampleapp')
-rw-r--r--repoze/bfg/sampleapp/app.py30
-rw-r--r--repoze/bfg/sampleapp/configure.zcml25
-rw-r--r--repoze/bfg/sampleapp/models.py12
3 files changed, 44 insertions, 23 deletions
diff --git a/repoze/bfg/sampleapp/app.py b/repoze/bfg/sampleapp/app.py
index f48f72141..db66cbcf8 100644
--- a/repoze/bfg/sampleapp/app.py
+++ b/repoze/bfg/sampleapp/app.py
@@ -1,23 +1,11 @@
-import UserDict
-
from zope.interface import classProvides
from zope.interface import implements
-from zope.interface import Interface
-from zope.interface import Attribute
from repoze.bfg.interfaces import IViewFactory
from repoze.bfg.interfaces import IView
from webob import Response
-class IBlogModel(Interface):
- id = Attribute('id')
-
-class BlogModel(UserDict):
- implements(IBlogModel)
- def __init__(self, id):
- self.id = id
-
class View(object):
classProvides(IViewFactory)
implements(IView)
@@ -37,21 +25,17 @@ class BlogWooHooView(View):
class DefaultView(View):
def __call__(self):
return Response('Default page, context is %s' % self.context)
-
+
+
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')
- gsm.registerAdapter(DefaultView, (None, IRequest), IViewFactory, '')
+ from repoze.bfg import sampleapp
+ from repoze.bfg.sampleapp.models import BlogModel
from repoze.bfg.router import make_app
- root = {'blog':BlogModel('myblog')}
+ blog = BlogModel('myblog')
+ root = {'blog':blog}
def get_root(environ):
return root
- app = make_app(get_root)
+ app = make_app(get_root, sampleapp)
from paste import httpserver
httpserver.serve(app, host='0.0.0.0', port='5432')
diff --git a/repoze/bfg/sampleapp/configure.zcml b/repoze/bfg/sampleapp/configure.zcml
new file mode 100644
index 000000000..58399f241
--- /dev/null
+++ b/repoze/bfg/sampleapp/configure.zcml
@@ -0,0 +1,25 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+ i18n_domain="repoze.bfg">
+
+ <include package="repoze.bfg" />
+
+ <adapter
+ factory=".app.BlogDefaultView"
+ provides="repoze.bfg.interfaces.IViewFactory"
+ for=".models.IBlogModel repoze.bfg.interfaces.IRequest"
+ />
+
+ <adapter
+ factory=".app.BlogWooHooView"
+ provides="repoze.bfg.interfaces.IViewFactory"
+ for=".models.IBlogModel repoze.bfg.interfaces.IRequest"
+ name="woohoo.html"
+ />
+
+ <adapter
+ factory=".app.DefaultView"
+ provides="repoze.bfg.interfaces.IViewFactory"
+ for="* repoze.bfg.interfaces.IRequest"
+ />
+
+</configure>
diff --git a/repoze/bfg/sampleapp/models.py b/repoze/bfg/sampleapp/models.py
new file mode 100644
index 000000000..19ef03c8c
--- /dev/null
+++ b/repoze/bfg/sampleapp/models.py
@@ -0,0 +1,12 @@
+from zope.interface import Interface
+from zope.interface import Attribute
+from zope.interface import implements
+
+class IBlogModel(Interface):
+ id = Attribute('id')
+
+class BlogModel(object):
+ implements(IBlogModel)
+ def __init__(self, id):
+ self.id = id
+