Sha256: 6f904529e6ca2dd75ae6931a15dc737e89722bff7e6df140fb5d3eb6928b1772

Contents?: true

Size: 1.77 KB

Versions: 23

Compression:

Stored size: 1.77 KB

Contents

/**
 * |-------------------|
 * | Backbone-Mediator |
 * |-------------------|
 *  Backbone-Mediator is freely distributable under the MIT license.
 *
 *  <a href="https://github.com/chalbert/Backbone-Mediator">More details & documentation</a>
 *
 * @author Nicolas Gilbert
 *
 * @requires _
 * @requires Backbone
 */

!function(t){"function"==typeof define&&define.amd?define(["underscore","backbone"],t):t(_,Backbone)}(function(t,e){var i,n={},s=e.View.prototype.delegateEvents,o=e.View.prototype.undelegateEvents;return e.Mediator={subscribe:function(t,e,i,s){n[t]||(n[t]=[]),n[t].push({fn:e,context:i||this,once:s})},publish:function(t){if(n[t])for(var i,s=[].slice.call(arguments,1),o=0,c=n[t].length;c>o;o++)i=n[t][o],i.fn.apply(i.context,s),i.once&&(e.Mediator.unsubscribe(t,i.fn,i.context),o--)},unsubscribe:function(t,e,i){if(n[t])for(var s,o=0;o<n[t].length;o++)s=n[t][o],s.fn===e&&s.context===i&&(n[t].splice(o,1),o--)},unsubscribeChannel:function(t){if(n[t])for(var e,i=0;i<n[t].length;i++)e=n[t][i],n[t].splice(i,1),i--},subscribeOnce:function(t,i,n){e.Mediator.subscribe(t,i,n,!0)}},i={delegateEvents:function(){s.apply(this,arguments),this.setSubscriptions()},undelegateEvents:function(){o.apply(this,arguments),this.unsetSubscriptions()},subscriptions:{},setSubscriptions:function(i){i&&t.extend(this.subscriptions||{},i),i=i||this.subscriptions,i&&!t.isEmpty(i)&&(this.unsetSubscriptions(i),t.each(i,function(i,n){var s;i.$once&&(i=i.$once,s=!0),t.isString(i)&&(i=this[i]),e.Mediator.subscribe(n,i,this,s)},this))},unsetSubscriptions:function(i){i=i||this.subscriptions,i&&!t.isEmpty(i)&&t.each(i,function(i,n){t.isString(i)&&(i=this[i]),e.Mediator.unsubscribe(n,i.$once||i,this)},this)}},t.extend(e.View.prototype,i),t.extend(e.Mediator,{pub:e.Mediator.publish,sub:e.Mediator.subscribe}),e});

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
rearview-1.2.3-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.2.2.rc.2-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.2.2.rc.1-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.2.1-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.2.0-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.1.2-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.1.1-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.1.0-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.3.rc.4-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.3.rc.3-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.3.rc.2-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.3.rc.1-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.2-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.2.rc.4-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.2.rc.3-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.2.rc.2-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.2.rc.1-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.1-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.0-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js
rearview-1.0.0.rc5-jruby public/rearview/vendor/backbone/plugins/backbone-mediator/js/backbone-mediator.js