JSDOC/Options.js
[gnome.introspection-doc-generator] / JSDOC / BuildDocs.js
index 682514b..2ef7e4b 100644 (file)
@@ -116,28 +116,43 @@ BuildDocs = {
             var cacheFile = !Options.cacheDirectory.length ? false : 
                 Options.cacheDirectory + srcFile.replace(/\//g, '_') + ".cache";
             
-            print(cacheFile);
+            //print(cacheFile);
             // disabled at present!@!!
             
             if (cacheFile  && File.exists(cacheFile)) {
                 // check filetime?
                 
-                var c_mt = File.getTimes(cacheFile);
-                var o_mt = File.getTimes(srcFile);
+                var c_mt = File.mtime(cacheFile);
+                var o_mt = File.mtime(srcFile);
                 //println(c_mt.toSource());
                // println(o_mt.toSource());
                
                 // this check does not appear to work according to the doc's - need to check it out.
                
-                if (c_mt[0] > o_mt[0]) { // cached time  > original time!
+                if (c_mt > o_mt) { // cached time  > original time!
                     // use the cached mtimes..
-                    var syms =  JSON.parse(File.read(cacheFile));
-                    
-                    throw "Conversion of cache not done yet!";
-                    
-                    for (var sy in syms) {
-                        //println("ADD:" + sy );
-                       Parser.symbols.addSymbol(syms[sy]);
+                    print("Read " + cacheFile);
+                    var syms =  JSON.parse(File.read(cacheFile), function(k, v) {
+                        //print(k);
+                        if (typeof(v) != 'object') {
+                            return v;
+                        }
+                        if (typeof(v['*object']) == 'undefined') {
+                            return v;
+                        }
+                        var cls = imports[v['*object']][v['*object']];
+                        //print(v['*object']);
+                        delete v['*object'];
+                        var ret = new cls();
+                        XObject.extend(ret, v);
+                        return ret;
+                        
+                        
+                    });
+                    //print("Add sybmols " + cacheFile); 
+                    for (var sy in syms._index) {
+                      //  print("ADD:" + sy );
+                       Parser.symbols.addSymbol(syms._index[sy]);
                     }
                     continue;
                 }
@@ -161,6 +176,15 @@ BuildDocs = {
         
             Parser.parse(ts, srcFile);
             
+            if (cacheFile) {
+                File.write(cacheFile,
+                  JSON.stringify(
+                    Parser.symbolsToObject(srcFile),
+                    null,2
+                  )
+                );
+            
+            }
             //var outstr = JSON.stringify(
             //    Parser.filesSymbols[srcFile]._index
             //);