| 30 | (function() { |
| 31 | |
| 32 | var toArgs = function(args, strings) { |
| 33 | var results = []; |
| 34 | for (var i = 0, arg; arg = args[i++];) { |
| 35 | switch($type(arg)) { |
| 36 | case "hash": |
| 37 | if (strings) arg = JSON.encode(arg); |
| 38 | break; |
| 39 | case "element": |
| 40 | if (strings) { |
| 41 | var el = arg.get('tag'); |
| 42 | if (arg.get('id')) el += "#" + arg.get('id'); |
| 43 | if (arg.get('class').length) el += "." + arg.get('class').replace(/\s+/g, '.'); |
| 44 | arg = el; |
| 45 | } |
| 46 | break; |
| 47 | default: |
| 48 | if (strings) { |
| 49 | if (!$defined(arg)) arg = 'undefined'; |
| 50 | else if (!arg) arg = 'false'; |
| 51 | else if (arg.name) arg = arg.name; |
| 52 | |
| 53 | if ($type(arg) != "string") { |
| 54 | if (arg.toString) arg = arg.toString(); |
| 55 | if ($type(arg) != "string") arg = '[Object]' |
| 56 | } |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | results.push(arg) |
| 61 | } |
| 62 | |
| 63 | return results; |
| 64 | }; |
| 65 | |
| 66 | var toString = function(args) { |
| 67 | return toArgs(args, true).join(" ") |