Revision: 3356
          http://vexi.svn.sourceforge.net/vexi/?rev=3356&view=rev
Author:   clrg
Date:     2009-01-14 02:34:49 +0000 (Wed, 14 Jan 2009)

Log Message:
-----------
More util improvements
- log.t template for nicer logging
- fix string.format not showing object key names

Modified Paths:
--------------
    trunk/widgets/org.vexi.widgets/src/vexi/util/string.t

Added Paths:
-----------
    trunk/widgets/org.vexi.widgets/src/vexi/util/log.t

Added: trunk/widgets/org.vexi.widgets/src/vexi/util/log.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/vexi/util/log.t                          
(rev 0)
+++ trunk/widgets/org.vexi.widgets/src/vexi/util/log.t  2009-01-14 02:34:49 UTC 
(rev 3356)
@@ -0,0 +1,46 @@
+<!-- Copyright 2008 - see COPYING for details [LGPL] -->
+
+<vexi xmlns:ui="vexi://ui" xmlns:meta="vexi://meta" xmlns="vexi.util">
+    <meta:doc>
+        <author>Charles Goodwin</author>
+        <name>String Utility Functions</name>
+    </meta:doc>
+    
+    var format = .string..format;
+    
+    /** comma delimited log of arguments with contents as-is */
+    static.clog = function() {
+        vexi.log.info(arguments.join[", "]);
+    }
+    
+    /** formatted log of arguments separated by newlines */
+    static.flog = function() {
+        if (arguments.length == 1) {
+            vexi.log.info(format(arguments[0]));
+        } else {
+            var log = [];
+            for (var i=0; arguments.length>i; i++)
+                log[i] = format(arguments[i]);
+            vexi.log.info(log.join("\n"));
+        }
+    }
+    
+    /** as flog but also copy to the clipboard */
+    static.flogAndCopyObject = function() {
+        var str;
+        if (arguments.length == 1) {
+            str = format(arguments[0]);
+        } else {
+            var log = [];
+            for (var i=0; arguments.length>i; i++)
+                log[i] = format(arguments[i]);
+            str = log.join("\n");
+        }
+        vexi.log.info(str);
+        vexi.log.info("=== copying object to clipboard ===");
+        vexi.ui.clipboard = str;
+    }
+    
+    <ui:box />
+</vexi>
+

Modified: trunk/widgets/org.vexi.widgets/src/vexi/util/string.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/vexi/util/string.t       2009-01-14 
02:11:02 UTC (rev 3355)
+++ trunk/widgets/org.vexi.widgets/src/vexi/util/string.t       2009-01-14 
02:34:49 UTC (rev 3356)
@@ -11,6 +11,8 @@
     static.trimleft = function(str) { return 
str.replace(vexi.regexp("/^\s+/",'g'),""); }
     static.trimright = function(str) { return 
str.replace(vexi.regexp("/\s+$/",'g'),""); }
     
+    var breaklen = 96;
+    
     /** take the string input arr and format it as a string */
     var formatArray = function(arr, indent) {
         if (arguments.length==1) indent = "";
@@ -23,7 +25,7 @@
             simple[i] = s;
         }
         if (strlen==0) return "[ ]";
-        if (40>=strlen) return "[ "+simple.join(", ")+" ]";
+        if (breaklen>=strlen) return "[ "+simple.join(", ")+" ]";
         var ret = ["[\n"];
         for (var i=0; l>i; i++) {
             ret[3*i+1] = indent+". ";
@@ -41,20 +43,18 @@
         var strlen = 0;
         var i = 0;
         for (var k in obj) {
-            var s = static.format(obj[k], indent+". ");
+            var s = k+":"+static.format(obj[k], indent+". ");
             strlen += s.length;
             simple[i++] = s;
         }
         if (strlen==0) return "{ }";
-        if (40>=strlen) return "{ "+simple.join(", ")+" }";
+        if (breaklen>=strlen) return "{ "+simple.join(", ")+" }";
         var ret = ["{\n"];
         i = 0;
         for (var k in obj) {
-            ret[5*i+1] = indent+". ";
-            ret[5*i+2] = "'"+k+"'";
-            ret[5*i+3] = ':';
-            ret[5*i+4] = simple[i];
-            ret[5*i+5] = ",\n";
+            ret[3*i+1] = indent+". ";
+            ret[3*i+2] = simple[i];
+            ret[3*i+3] = ",\n";
             i++;
         }
         ret[ret.length-1] = "\n"+indent+"}";
@@ -65,10 +65,10 @@
     var formatString = function(str, indent) {
         if (arguments.length==1) indent = "";
         var l = str.length;
-        var ret = ['"', str.substring(i,i+72), '"'];
-        for (var i=1; l>(i*72); i++) {
+        var ret = ['"', str.substring(i,i+breaklen), '"'];
+        for (var i=1; l>(i*breaklen); i++) {
             ret[3*i] = indent + "\n+ " + '"';
-            ret[3*i+1] = str.substring(i*72,(i+1)*72);
+            ret[3*i+1] = str.substring(i*breaklen,(i+1)*breaklen);
             ret[3*i+2] = '"';
         }
         return ret.join("");
@@ -85,22 +85,9 @@
             case "array":
                 return formatArray(obj, indent);
             default:
-                return vexi.js.stringify(obj);
+                return obj;
         }
     }
     
-    /** takes a VexiScript object and prints it as a formatted string */
-    static.logObject = function(obj) {
-        vexi.log.info(static.format(obj));
-    }
-    
-    /** takes a VexiScript object and prints it as a formatted string */
-    static.logAndCopyObject = function(obj) {
-        var str = static.format(obj);
-        vexi.log.info(str);
-        vexi.log.info("copying object to clipboard");
-        vexi.ui.clipboard = str;
-    }
-    
     <ui:box />
-</vexi>
+</vexi>
\ No newline at end of file


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to