[Commits] r492 - website

commits at geoext.org commits at geoext.org
Tue Apr 28 11:49:14 CEST 2009


Author: tschaub
Date: 2009-04-28 11:49:14 +0200 (Tue, 28 Apr 2009)
New Revision: 492

Modified:
   website/jst.py
Log:
inherit takes a list of source file objects

Modified: website/jst.py
===================================================================
--- website/jst.py	2009-04-28 09:31:51 UTC (rev 491)
+++ website/jst.py	2009-04-28 09:49:14 UTC (rev 492)
@@ -57,22 +57,16 @@
                         if jsfile.data:
                             files[filepath] = jsfile
         
-            # create list of dependencies
+            # create dict of dependencies
             dependencies = {}
             for filepath, jsfile in files.items():
                 dependencies[filepath] = jsfile.extends
             
-            # get tuple of files ordered by dependency
-            order = tsort.sort(dependencies)
-
             # extend data with any data from parents
-            #import pdb; pdb.set_trace()
-            for filepath in order:
+            for filepath in tsort.sort(dependencies):
                 jsfile = files[filepath]
                 if jsfile.extends:
-                    for parentpath in sorted(jsfile.extends, reverse=True):
-                        if parentpath in files:
-                            jsfile.inherit(files[parentpath].data)
+                    jsfile.inherit([files[parentpath] for parentpath in sorted(jsfile.extends, reverse=True) if parentpath in files])
                     
                 # parse template for each file
                 template_filename = os.path.join(sourcedir, filepath.split(SUFFIX_JS)[0] + SUFFIX_JST)
@@ -168,27 +162,29 @@
                 self._data = None
         return self._data
     
-    def inherit(self, data):
-        if "_parents" in self._data:
-            self.data["_parents"].insert(0, data)
-        else:
-            self.data["_parents"] = [data]
-        for key, value in data.items():
-            if isinstance(value, list):
-                # concatenate with any existing list
-                if key in self._data:
-                    self._data[key] += value
-                else:
-                    self._data[key] = value[:]
-            elif isinstance(value, dict):
-                # acquire values for keys we don't have already
-                value = value.copy()
-                if key in self._data:
-                    value.update(self._data[key])
-                self._data[key] = value
+    def inherit(self, files):
+        for obj in files:
+            data = obj.data
+            if "_parents" in self._data:
+                self.data["_parents"].insert(0, data)
             else:
-                if not key in self._data:
+                self.data["_parents"] = [data]
+            for key, value in data.items():
+                if isinstance(value, list):
+                    # concatenate with any existing list
+                    if key in self._data:
+                        self._data[key] += value
+                    else:
+                        self._data[key] = value[:]
+                elif isinstance(value, dict):
+                    # acquire values for keys we don't have already
+                    value = value.copy()
+                    if key in self._data:
+                        value.update(self._data[key])
                     self._data[key] = value
+                else:
+                    if not key in self._data:
+                        self._data[key] = value
     
 
 



More information about the Commits mailing list