[Checkins] SVN: zopyx.versioning/trunk/zopyx/versioning/ updated

Andreas Jung andreas at andreas-jung.com
Sat Jul 3 06:31:15 EDT 2010


Log message for revision 114127:
  updated
  

Changed:
  A   zopyx.versioning/trunk/zopyx/versioning/facade.py
  U   zopyx.versioning/trunk/zopyx/versioning/interfaces.py

-=-
Added: zopyx.versioning/trunk/zopyx/versioning/facade.py
===================================================================
--- zopyx.versioning/trunk/zopyx/versioning/facade.py	                        (rev 0)
+++ zopyx.versioning/trunk/zopyx/versioning/facade.py	2010-07-03 10:31:15 UTC (rev 114127)
@@ -0,0 +1,26 @@
+
+import riparse
+from zope.interface import implements
+from interfaces import IVersioning
+
+class VersioningFacade(object):
+
+    implements(IVersioning)
+
+    def getStorage(self, dsn):
+
+        r = riparse.parse(dsn)
+        if r['scheme'] == 'mongo':
+            from zopyx.versioning.storages.mongodb.storage import MongoDBStorage
+            return MongoDBStorage(host=r['host'],
+                                  port=int(r['port']),
+                                  database=r['path'][0])
+
+        raise ValueError('Unsupported schema: %s' % r['scheme'])
+
+
+if __name__ == '__main__':
+
+    print VersioningFacade().getStorage('mongo://localhost:10200/foo')
+    print VersioningFacade().getStorage('zodb://localhost:10200/foo')
+        

Modified: zopyx.versioning/trunk/zopyx/versioning/interfaces.py
===================================================================
--- zopyx.versioning/trunk/zopyx/versioning/interfaces.py	2010-07-03 10:27:20 UTC (rev 114126)
+++ zopyx.versioning/trunk/zopyx/versioning/interfaces.py	2010-07-03 10:31:15 UTC (rev 114127)
@@ -75,6 +75,12 @@
     # XXX to be written#
 
 
+class IVersioning(Interface):
+
+    def getStorage(dsn):
+        """ Provide access to a version storage based on a DSN """
+
+
 class ILookup(Interface):
 
     def getObjectById(id):



More information about the checkins mailing list