Version 3.17.2

APIs

  • Begin typing in the search box above to see results.
Show:

File: dump/js/dump.js

/**
 * Returns a simple string representation of the object or array.
 * Other types of objects will be returned unprocessed. Arrays
 * are expected to be indexed. Use object notation for
 * associative arrays.
 *
 * If included, the dump method is added to the YUI instance.
 *
 * @module dump
 */
 var L = Y.Lang,
 OBJ = '{...}',
 FUN = 'f(){...}',
 COMMA = ', ',
 ARROW = ' => ',
 /**
 * Returns a simple string representation of the object or array.
 * Other types of objects will be returned unprocessed. Arrays
 * are expected to be indexed.
 *
 * @method dump
 * @param {Object} o The object to dump.
 * @param {Number} d How deep to recurse child objects, default 3.
 * @return {String} the dump result.
 * @for YUI
 */
 dump = function(o, d) {
 var i, len, s = [], type = L.type(o);
 // Cast non-objects to string
 // Skip dates because the std toString is what we want
 // Skip HTMLElement-like objects because trying to dump
 // an element will cause an unhandled exception in FF 2.x
 if (!L.isObject(o)) {
 return o + '';
 } else if (type == 'date') {
 return o;
 } else if (o.nodeType && o.tagName) {
 return o.tagName + '#' + o.id;
 } else if (o.document && o.navigator) {
 return 'window';
 } else if (o.location && o.body) {
 return 'document';
 } else if (type == 'function') {
 return FUN;
 }
 // dig into child objects the depth specifed. Default 3
 d = (L.isNumber(d)) ? d : 3;
 // arrays [1, 2, 3]
 if (type == 'array') {
 s.push('[');
 for (i = 0, len = o.length; i < len; i = i + 1) {
 if (L.isObject(o[i])) {
 s.push((d > 0) ? L.dump(o[i], d - 1) : OBJ);
 } else {
 s.push(o[i]);
 }
 s.push(COMMA);
 }
 if (s.length > 1) {
 s.pop();
 }
 s.push(']');
 // regexp /foo/
 } else if (type == 'regexp') {
 s.push(o.toString());
 // objects {k1 => v1, k2 => v2}
 } else {
 s.push('{');
 for (i in o) {
 if (o.hasOwnProperty(i)) {
 try {
 s.push(i + ARROW);
 if (L.isObject(o[i])) {
 s.push((d > 0) ? L.dump(o[i], d - 1) : OBJ);
 } else {
 s.push(o[i]);
 }
 s.push(COMMA);
 } catch (e) {
 s.push('Error: ' + e.message);
 }
 }
 }
 if (s.length > 1) {
 s.pop();
 }
 s.push('}');
 }
 return s.join('');
 };
 Y.dump = dump;
 L.dump = dump;
 

AltStyle によって変換されたページ (->オリジナル) /