New file |
0,0 → 1,66 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
|
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
|
http://dojotoolkit.org/community/licensing.shtml |
*/ |
|
dojo.provide("dojo.lang.repr"); |
dojo.require("dojo.lang.common"); |
dojo.require("dojo.AdapterRegistry"); |
dojo.require("dojo.string.extras"); |
dojo.lang.reprRegistry = new dojo.AdapterRegistry(); |
dojo.lang.registerRepr = function (name, check, wrap, override) { |
dojo.lang.reprRegistry.register(name, check, wrap, override); |
}; |
dojo.lang.repr = function (obj) { |
if (typeof (obj) == "undefined") { |
return "undefined"; |
} else { |
if (obj === null) { |
return "null"; |
} |
} |
try { |
if (typeof (obj["__repr__"]) == "function") { |
return obj["__repr__"](); |
} else { |
if ((typeof (obj["repr"]) == "function") && (obj.repr != arguments.callee)) { |
return obj["repr"](); |
} |
} |
return dojo.lang.reprRegistry.match(obj); |
} |
catch (e) { |
if (typeof (obj.NAME) == "string" && (obj.toString == Function.prototype.toString || obj.toString == Object.prototype.toString)) { |
return obj.NAME; |
} |
} |
if (typeof (obj) == "function") { |
obj = (obj + "").replace(/^\s+/, ""); |
var idx = obj.indexOf("{"); |
if (idx != -1) { |
obj = obj.substr(0, idx) + "{...}"; |
} |
} |
return obj + ""; |
}; |
dojo.lang.reprArrayLike = function (arr) { |
try { |
var na = dojo.lang.map(arr, dojo.lang.repr); |
return "[" + na.join(", ") + "]"; |
} |
catch (e) { |
} |
}; |
(function () { |
var m = dojo.lang; |
m.registerRepr("arrayLike", m.isArrayLike, m.reprArrayLike); |
m.registerRepr("string", m.isString, m.reprString); |
m.registerRepr("numbers", m.isNumber, m.reprNumber); |
m.registerRepr("boolean", m.isBoolean, m.reprNumber); |
})(); |
|