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  
13 function log (v)  {
14         print(v);
15 }
16 function dump (ar) {
17         print(_dump(ar, 0));
18 }
19
20 function _dump(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         return "===>"+arr+"<===("+typeof(arr)+")";
33     }
34
35     for(var item in arr) {
36         var value = arr[item];
37         switch (typeof(value)) {
38             case 'object' : 
39                 dumped_text += level_padding + "'" + item + "' ...\n";
40                 dumped_text += _dump(value,level+1) + "\n";
41                 break;
42             
43             case 'function' : 
44                 dumped_text += level_padding + "'" + item + "' => FUNCTION \n";
45                 break;
46             
47             default: 
48                 dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
49                 break;
50         }
51     }
52         
53     return dumped_text;
54 }