JSDOC/Packer.vala
[gnome.introspection-doc-generator] / JSDOC / Packer.vala
index 16bd4af..472932a 100644 (file)
@@ -64,14 +64,14 @@ namespace JSDOC
                * @cfg {String} target to write files to - must be full path.
                */
                string target;
-               FileOutputStream targetStream = null;
+               GLib.FileOutputStream targetStream = null;
                /**
                 * @cfg {String} debugTarget target to write files debug version to (uncompacted)- must be full path.
                 */
                string targetDebug;
                
 
-               FileOutputStream targetDebugStream  = null;
+               GLib.FileOutputStream targetDebugStream  = null;
                /**
                 * @cfg {String} tmpDir  (optional) where to put the temporary files. 
                 *      if you set this, then files will not be cleaned up
@@ -124,7 +124,7 @@ namespace JSDOC
                
                public void pack()
                {
-                   if (!this.files) {
+                   if (this.files.size < 1) {
                                throw new Packer.ArgumentError("No Files loaded before pack() called");
                        }
                        if (this.target.length > 0 ) {
@@ -344,83 +344,79 @@ namespace JSDOC
                
                
                }
-    /**
-     * Core packing routine  for a file
-     * 
-     * @param str - str source text..
-     * @param fn - filename (for reference?)
-     * @param minfile - min file location...
-     * 
-     */
-    
-    packFile : function (str,fn,minfile)
-    {
-    
-        var tr = new  TokenReader(  { 
-            keepDocs :true, 
-            keepWhite : true,  
-            keepComments : true, 
-            sepIdents : true,
-            collapseWhite : false,
-            filename : fn
-        });
-        this.timerPrint("START" + fn);
-        
-        // we can load translation map here...
-        
-        var toks = tr.tokenize(new TextStream(str)); // dont merge xxx + . + yyyy etc.
-        
-        // at this point we can write a language file...
-        if (this.translateJSON) {
-            
-            this.writeTranslateFile(fn, minfile, toks);
-        }
-        
-        this.activeFile = fn;
-        
-        // and replace if we are generating a different language..
-        
-        this.timerPrint("Tokenized");
-        //var ts = new TokenStream(toks);
-        //print(JSON.stringify(toks, null,4 )); Seed.quit();
-        var ts = new Collapse(toks);
-       // print(JSON.stringify(ts.tokens, null,4 )); Seed.quit();
-        //return;//
-        var sp = new ScopeParser(ts);
-        this.timerPrint("Converted to Parser");
-        sp.packer = this;
-        sp.buildSymbolTree();
-        this.timerPrint("Built Sym tree");
-        sp.mungeSymboltree();
-        this.timerPrint("Munged Sym tree");
-        print(sp.warnings.join("\n"));
-        this.timerPrint("Compressed");
-        
-        var out = CompressWhite(new TokenStream(toks), this, this.keepWhite); // do not kill whitespace..
-        
-        
-        this.timerPrint("Compressed");
-        
-         if (out.length) {
-            File.write(minfile, out);
-            this.timerPrint("Write (" + out.length + "bytes) " + minfile);
-        }
-        
-        return out;
-        
-        
-         
-    },
-     
-    
-    md5 : function (string)
-    {
-        
-        return GLib.compute_checksum_for_string(GLib.ChecksumType.MD5, string, string.length);
-        
-    },
-    
-    //stringHandler : function(tok) -- not used...
+               /**
+                * Core packing routine  for a file
+                * 
+                * @param str - str source text..
+                * @param fn - filename (for reference?)
+                * @param minfile - min file location...
+                * 
+                */
+
+               private string packFile  (string str,string fn, string minfile)
+               {
+
+                       var tr = new  TokenReader();
+                       tr.keepDocs =true;
+                       tr.keepWhite = true;
+                       tr.keepComments = true;
+                       tr.sepIdents = true;
+                       tr.collapseWhite = false;
+                       tr.filename = fn;
+
+                       this.timerPrint("START" + fn);
+               
+                       // we can load translation map here...
+               
+                       var toks = tr.tokenize(new TextStream(str)); // dont merge xxx + . + yyyy etc.
+               
+               
+               
+                       this.activeFile = fn;
+               
+                       // and replace if we are generating a different language..
+               
+
+                       //var ts = new TokenStream(toks);
+                       //print(JSON.stringify(toks, null,4 )); Seed.quit();
+                       var ts = new Collapse(toks);
+                  // print(JSON.stringify(ts.tokens, null,4 )); Seed.quit();
+                       //return;//
+                       var sp = new ScopeParser(ts);
+
+                       sp.packer = this;
+                       sp.buildSymbolTree();
+
+                       sp.mungeSymboltree();
+
+                       print(sp.warnings.join("\n"));
+
+               
+                       var outf = CompressWhite(new TokenStream(toks), this, this.keepWhite); // do not kill whitespace..
+               
+               
+               
+               
+                        if (out.length > 0) {
+                               FileUtils.put_contents(minfile, outf);
+                                
+                       }
+               
+                       return out;
+               
+               
+                        
+               }
+                
+
+               public string md5(string str)
+               {
+               
+                       return GLib.compute_checksum_for_string(GLib.ChecksumType.MD5, str);
+               
+               }
     
+        //stringHandler : function(tok) -- not used...
+    }
     
-};
+}