[Checkins] SVN: grok/branches/faassen-index/src/grok/index.py Refactor a little to make it easier to add new indexes.

Martijn Faassen faassen at infrae.com
Tue Apr 17 13:55:31 EDT 2007


Log message for revision 74207:
  Refactor a little to make it easier to add new indexes.
  

Changed:
  U   grok/branches/faassen-index/src/grok/index.py

-=-
Modified: grok/branches/faassen-index/src/grok/index.py
===================================================================
--- grok/branches/faassen-index/src/grok/index.py	2007-04-17 17:44:44 UTC (rev 74206)
+++ grok/branches/faassen-index/src/grok/index.py	2007-04-17 17:55:30 UTC (rev 74207)
@@ -12,6 +12,8 @@
 
 class IndexDefinition(object):
     implements(IIndexDefinition)
+
+    index_class = None
     
     def __init__(self, *args, **kw):
         frame = sys._getframe(1)
@@ -22,14 +24,12 @@
         self._kw = kw
 
     def setup(self, catalog, name, context):
-        raise NotImplementedError
+        call = IMethod.providedBy(context[name])
+        catalog[name] = self.index_class(name, context, call,
+                                         *self._args, **self._kw)
 
 class Field(IndexDefinition):
-    def setup(self, catalog, name, context):
-        call = IMethod.providedBy(context[name])
-        catalog[name] = FieldIndex(name, context, *self._args, **self._kw)
+    index_class = FieldIndex
 
 class Text(IndexDefinition):
-    def setup(self, catalog, name, context):
-        call = IMethod.providedBy(context[name]) 
-        catalog[name] = TextIndex(name, context, call, *self._args, **self._kw)
+    index_class = TextIndex



More information about the Checkins mailing list