Sha256: a93d707c47a97c9de6beb744e36be97fc16f875e7832a5a9ce9f71f23c48246c

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

(function($) {
  $.extend(Coolerator, {
    Filters : {
      global : [],
      scoped : {},

      get : function get(scope) {
        return $.merge(this.global, this.scoped[scope]);
      }
    },

    Filter : function Filter() {
      var config = $.merge(arguments, ['*'])[0];

      if('object' === typeof(config)) {
        var scope  = config.scope || '*';
        var filter = {
          before : (config.before || function no_op() {}),
          after  : (config.after  || function no_op() {})
        };
      }
      else {
        var scope  = config;
        var filter = this;
      }

      if(scope === '*') {
        Coolerator.Filters.global.push(filter);
      }
      else {
        Coolerator.Filters.scoped[scope] = $.merge(Coolerator.Filters.scoped[scope] || [], [filter]);
      }
    }
  });

  $.extend(Coolerator.Filter.prototype, {
    before : function before(fn) {
      if('function' == typeof fn) {
        this.before = fn;
      }
    },

    after : function after(fn) {
      if('function' == typeof fn) {
        this.after = fn;
      }
    }
  });
})(jQuery);

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
coolerator.vision-0.1.0 public/javascripts/vendor/coolerator/coolerator.filter.js