/
knockback-statistics.min.js
6 lines (6 loc) · 1.94 KB
/
knockback-statistics.min.js
1
2
3
4
5
6
/*
knockback-statistics.js 0.16.7
(c) 2011, 2012 Kevin Malakoff - http://kmalakoff.github.com/knockback/
License: MIT (http://www.opensource.org/licenses/mit-license.php)
Dependencies: Knockout.js, Backbone.js, and Underscore.js.
*/(function(){return function(e){return typeof define=="function"&&define.amd?define("knockback-statistics",["underscore","backbone","knockout","knockback"],e):e.call(this)}(function(){var e,t,n,r,i;return t=!this.kb&&typeof require!="undefined"?require("knockback"):this.kb,r=t._,e=t.Backbone,n=t.ko,this.Knockback=this.kb=t,typeof exports!="undefined"&&(module.exports=t),i=n.utils.unwrapObservable,t.Statistics=function(){function e(){this.model_events_tracker=[],this.registered_tracker={}}return e.prototype.clear=function(){return this.model_events_tracker=[]},e.prototype.addModelEvent=function(e){return this.model_events_tracker.push(e)},e.prototype.modelEventsStatsString=function(){var e,t,n,i;n="",n+="Total Count: "+this.model_events_tracker.length,e=r.groupBy(this.model_events_tracker,function(e){return"event name: '"+e.name+"', attribute name: '"+e.key+"'"});for(t in e)i=e[t],n+="\n "+t+", count: "+i.length;return n},e.prototype.register=function(e,t){return this.registeredTracker(e).push(t)},e.prototype.unregister=function(e,t){var n,i;return i=this.registeredTracker(e),n=r.indexOf(i,t),n<0&&console.log("kb.Statistics: failed to unregister type: "+e),i.splice(n,1)},e.prototype.registeredCount=function(e){var t,n,r;if(e)return this.registeredTracker(e).length;t=0,r=this.registered_tracker[e];for(e in r)n=r[e],t+=n.length;return t},e.prototype.registeredStatsString=function(e){var t,n,r,i,s;t="",s=this.registered_tracker;for(n in s){r=s[n];if(!r.length)continue;i&&(t+="\n "),t+=""+(n?n:"No Name")+": "+r.length,i=!0}return t?t:e},e.prototype.registeredTracker=function(e){var t;return this.registered_tracker.hasOwnProperty(e)?this.registered_tracker[e]:(t=[],this.registered_tracker[e]=t,t)},e}(),t})}).call(this);