console.js
authorAlan Knowles <alan@akbkhome.com>
Thu, 29 Apr 2010 05:34:53 +0000 (13:34 +0800)
committerAlan Knowles <alan@akbkhome.com>
Thu, 29 Apr 2010 05:34:53 +0000 (13:34 +0800)
console.js

index e69de29..b8a30dd 100644 (file)
@@ -0,0 +1,56 @@
+//<Script type="text/javascript">
+/**
+ * 
+ * simple console wrapper - emulates what you would expect from console
+ * 
+ * in theory could be replaced with a 'in-line console'
+ * 
+ * provides 'dump' in addtion to 'log'
+ * 
+ */
+
+var console = {
+    log : function (v)  {
+        print(v);
+    },
+    dump : function (ar) {
+        print(this._dump(ar, 0));
+    },
+
+    _dump: function(arr,level) {
+        var dumped_text = "";
+        if(!level) level = 0;
+        
+        
+        //The padding given at the beginning of the line.
+        var level_padding = "";
+        for(var j=0;j<level+1;j++) level_padding += "    ";
+        
+        if(level > 15) return  level_padding + "[ ... to deep ...]\n";
+        
+        if(typeof(arr) == 'object') { //Array/Hashes/Objects 
+         
+        
+            for(var item in arr) {
+                var value = arr[item];
+                switch (typeof(value)) {
+                    case 'object' : 
+                        dumped_text += level_padding + "'" + item + "' ...\n";
+                        dumped_text += this._dump(value,level+1) + "\n";
+                        break;
+                    
+                    case 'function' : 
+                        dumped_text += level_padding + "'" + item + "' => FUNCTION \n";
+                        break;
+                    
+                    default: 
+                        dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
+                        break;
+                }
+            }
+        } else { //Stings/Chars/Numbers etc.
+            dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
+        }
+        return dumped_text;
+    }
+}
\ No newline at end of file