From fb4e9ae71aca255ed8d642f1ba135496126462e6 Mon Sep 17 00:00:00 2001 From: Jim Cowart Date: Thu, 20 Dec 2012 02:45:05 -0500 Subject: [PATCH] Trimmed more code out --- lib/postal.js | 20 +++++--------------- lib/postal.min.js | 2 +- package.json | 6 +++--- src/Api.js | 21 +++++---------------- src/LocalBus.js | 3 ++- 5 files changed, 16 insertions(+), 36 deletions(-) diff --git a/lib/postal.js b/lib/postal.js index 99d748d..4cbcbbf 100644 --- a/lib/postal.js +++ b/lib/postal.js @@ -306,9 +306,7 @@ } } }; - // save some setup time, albeit tiny localBus.subscriptions[SYSTEM_CHANNEL] = {}; - var postal = { configuration : { bus : localBus, @@ -318,7 +316,6 @@ }, ChannelDefinition : ChannelDefinition, - SubscriptionDefinition : SubscriptionDefinition, channel : function ( channelName ) { @@ -367,23 +364,16 @@ utils : { getSubscribersFor : function () { var channel = arguments[ 0 ], - tpc = arguments[ 1 ], - result = []; + tpc = arguments[ 1 ]; if ( arguments.length === 1 ) { - if ( Object.prototype.toString.call( channel ) === "[object String]" ) { - channel = postal.configuration.DEFAULT_CHANNEL; - tpc = arguments[ 0 ]; - } - else { - channel = arguments[ 0 ].channel || postal.configuration.DEFAULT_CHANNEL; - tpc = arguments[ 0 ].topic; - } + channel = arguments[ 0 ].channel || postal.configuration.DEFAULT_CHANNEL; + tpc = arguments[ 0 ].topic; } if ( postal.configuration.bus.subscriptions[ channel ] && postal.configuration.bus.subscriptions[ channel ].hasOwnProperty( tpc ) ) { - result = postal.configuration.bus.subscriptions[ channel ][ tpc ]; + return postal.configuration.bus.subscriptions[ channel ][ tpc ]; } - return result; + return []; }, reset : function () { diff --git a/lib/postal.min.js b/lib/postal.min.js index 8060d2e..7e31cc1 100644 --- a/lib/postal.min.js +++ b/lib/postal.min.js @@ -4,4 +4,4 @@ License: Dual licensed MIT (http://www.opensource.org/licenses/mit-license) & GPL (http://www.opensource.org/licenses/gpl-license) Version 0.8.0 */ -(function(e,t){typeof module=="object"&&module.exports?module.exports=function(e){return e=e||require("underscore"),t(e)}:typeof define=="function"&&define.amd?define(["."],function(n){return t(n,e)}):e.postal=t(e._,e)})(this,function(e,t,n){var r="/",i=0,s="postal",o=function(){},u=function(){var t;return function(n){var r=!1;return e.isString(n)?(r=n===t,t=n):(r=e.isEqual(n,t),t=e.clone(n)),!r}},a=function(){var t=[];return function(n){var r=!e.any(t,function(t){return e.isObject(n)||e.isArray(n)?e.isEqual(n,t):n===t});return r&&t.push(n),r}},f=function(e){this.channel=e||r};f.prototype.subscribe=function(){return arguments.length===1?new l(this.channel,arguments[0].topic,arguments[0].callback):new l(this.channel,arguments[0],arguments[1])},f.prototype.publish=function(){var e=arguments.length===1?arguments[0]:{topic:arguments[0],data:arguments[1]};return e.channel=this.channel,p.configuration.bus.publish(e)};var l=function(e,t,n){this.channel=e,this.topic=t,this.callback=n,this.constraints=[],this.context=null,p.configuration.bus.publish({channel:s,topic:"subscription.created",data:{event:"subscription.created",channel:e,topic:t}}),p.configuration.bus.subscribe(this)};l.prototype={unsubscribe:function(){p.configuration.bus.unsubscribe(this),p.configuration.bus.publish({channel:s,topic:"subscription.removed",data:{event:"subscription.removed",channel:this.channel,topic:this.topic}})},defer:function(){var e=this.callback;return this.callback=function(t){setTimeout(e,0,t)},this},disposeAfter:function(t){if(e.isNaN(t)||t<=0)throw"The value provided to disposeAfter (maxCalls) must be a number greater than zero.";var n=this.callback,r=e.after(t,e.bind(function(){this.unsubscribe()},this));return this.callback=function(){n.apply(this.context,arguments),r()},this},distinctUntilChanged:function(){return this.withConstraint(new u),this},distinct:function(){return this.withConstraint(new a),this},once:function(){this.disposeAfter(1)},withConstraint:function(t){if(!e.isFunction(t))throw"Predicate constraint must be a function";return this.constraints.push(t),this},withConstraints:function(t){var n=this;return e.isArray(t)&&e.each(t,function(e){n.withConstraint(e)}),n},withContext:function(e){return this.context=e,this},withDebounce:function(t){if(e.isNaN(t))throw"Milliseconds must be a number";var n=this.callback;return this.callback=e.debounce(n,t),this},withDelay:function(t){if(e.isNaN(t))throw"Milliseconds must be a number";var n=this.callback;return this.callback=function(e){setTimeout(function(){n(e)},t)},this},withThrottle:function(t){if(e.isNaN(t))throw"Milliseconds must be a number";var n=this.callback;return this.callback=e.throttle(n,t),this},subscribe:function(e){return this.callback=e,this}};var c={cache:{},compare:function(e,t){if(this.cache[t]&&this.cache[t][e])return!0;var n=("^"+e.replace(/\./g,"\\.").replace(/\*/g,"[A-Z,a-z,0-9]*").replace(/#/g,".*")+"$").replace("\\..*$","(\\..*)*$").replace("^.*\\.","^(.*\\.)*"),r=new RegExp(n),i=r.test(t);return i&&(this.cache[t]||(this.cache[t]={}),this.cache[t][e]=!0),i},reset:function(){this.cache={}}},h={addWireTap:function(e){var t=this;return t.wireTaps.push(e),function(){var n=t.wireTaps.indexOf(e);n!==-1&&t.wireTaps.splice(n,1)}},publish:function(t){return t.timeStamp=new Date,e.each(this.wireTaps,function(e){e(t.data,t)}),this.subscriptions[t.channel]&&e.each(this.subscriptions[t.channel],function(n){e.each(e.clone(n),function(n){p.configuration.resolver.compare(n.topic,t.topic)&&e.all(n.constraints,function(e){return e.call(n.context,t.data,t)})&&typeof n.callback=="function"&&n.callback.call(n.context,t.data,t)})}),t},reset:function(){this.subscriptions&&(e.each(this.subscriptions,function(t){e.each(t,function(e){while(e.length)e.pop().unsubscribe()})}),this.subscriptions={})},subscribe:function(e){var t,n,r,i=this.subscriptions[e.channel],s;return i||(i=this.subscriptions[e.channel]={}),s=this.subscriptions[e.channel][e.topic],s||(s=this.subscriptions[e.channel][e.topic]=new Array(0)),s.push(e),e},subscriptions:{},wireTaps:[],unsubscribe:function(e){if(this.subscriptions[e.channel][e.topic]){var t=this.subscriptions[e.channel][e.topic].length,n=0;for(;n