/*______________
| ______ | U I Z E J A V A S C R I P T F R A M E W O R K
| / / | ---------------------------------------------------
| / O / | MODULE : Uize.Util.Debug Package
| / / / |
| / / / /| | ONLINE : http://uize.com
| /____/ /__/_| | COPYRIGHT : (c)2008-2014 UIZE
| /___ | LICENSE : Available under MIT License or GNU General Public License
|_______________| http://uize.com/license.html
*/
/* Module Meta Data
type: Package
importance: 1
codeCompleteness: 10
docCompleteness: 5
*/
/*?
Introduction
The =Uize.Util.Debug= package provides convenience methods to aid in debugging code during development.
*DEVELOPERS:* `Chris van Rensburg`
*/
Uize.module ({
name:'Uize.Util.Debug',
required:'Uize.Util.Oop',
builder:function () {
'use strict';
var
/*** Variables for Scruncher Optimization ***/
_package,
_undefined,
_Uize = Uize,
_Uize_Util_Oop = _Uize.Util.Oop
;
return _package = Uize.package ({
typeSummary:function (m) {
return (
'[' +
(
m == _undefined
? m
: (
(
_Uize.isPrimitive (m)
? 'primitive'
: m && m.moduleName
? (_Uize_Util_Oop.isUizeClass (m) ? 'class' : 'package')
: 'object'
) +
' ' + (_Uize_Util_Oop.getClassName (_Uize_Util_Oop.resolveToClass (m)) || 'Function')
)
) +
']'
);
},
summary:function (m) {
var _summaryDetails = '';
if (_Uize_Util_Oop.isUizeClass (m) || _Uize_Util_Oop.isUizeClassInstance (m)) {
var _propertiesLines = [];
_Uize.forEach (
m.get (),
function (_propertyValue,_propertyName) {
_propertiesLines.push (
_propertyName + ' : ' +
(
_propertyValue == _undefined || _Uize.isPrimitive (_propertyValue)
? _propertyValue
: _package.typeSummary (_propertyValue)
)
);
}
);
_summaryDetails = _propertiesLines.sort ().join ('\n');
}
return (
_package.typeSummary (m) +
(_summaryDetails && '\n\n') +
_summaryDetails
);
}
});
}
});