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