console.js
[app.Builder.js] / console.js
1 //<Script type="text/javascript">
2 /**
3  * 
4  * simple console wrapper - emulates what you would expect from console
5  * 
6  * in theory could be replaced with a 'in-line console'
7  * 
8  * provides 'dump' in addtion to 'log'
9  * 
10  */
11
12 var console = {
13     log : function (v)  {
14         print(v);
15     },
16     dump : function (ar) {
17         print(this._dump(ar, 0));
18     },
19
20     _dump: function(arr,level) {
21         var dumped_text = "";
22         if(!level) level = 0;
23         
24         
25         //The padding given at the beginning of the line.
26         var level_padding = "";
27         for(var j=0;j<level+1;j++) level_padding += "    ";
28         
29         if(level > 15) return  level_padding + "[ ... to deep ...]\n";
30         
31         if(typeof(arr) == 'object') { //Array/Hashes/Objects 
32          
33         
34             for(var item in arr) {
35                 var value = arr[item];
36                 switch (typeof(value)) {
37                     case 'object' : 
38                         dumped_text += level_padding + "'" + item + "' ...\n";
39                         dumped_text += this._dump(value,level+1) + "\n";
40                         break;
41                     
42                     case 'function' : 
43                         dumped_text += level_padding + "'" + item + "' => FUNCTION \n";
44                         break;
45                     
46                     default: 
47                         dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
48                         break;
49                 }
50             }
51         } else { //Stings/Chars/Numbers etc.
52             dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
53         }
54         return dumped_text;
55     }
56 }