1 module.exports = sigmund
2 function sigmund (subject, maxSessions) {
3 maxSessions = maxSessions || 10;
8 function psychoAnalyze (subject, session) {
9 if (session > maxSessions) return;
11 if (typeof subject === 'function' ||
12 typeof subject === 'undefined') {
16 if (typeof subject !== 'object' || !subject ||
17 (subject instanceof RE)) {
22 if (notes.indexOf(subject) !== -1 || session === maxSessions) return;
26 Object.keys(subject).forEach(function (issue, _, __) {
27 // pseudo-private values. skip those.
28 if (issue.charAt(0) === '_') return;
29 var to = typeof subject[issue];
30 if (to === 'function' || to === 'undefined') return;
32 psychoAnalyze(subject[issue], session + 1);
35 psychoAnalyze(subject, 0);
39 // vim: set softtabstop=4 shiftwidth=4: