Sha256: e1376890e7edaa47d5c7ddf4ded1db22c3d9f3dfddad490a2936fc67ff6e3233

Contents?: true

Size: 1.28 KB

Versions: 1

Compression:

Stored size: 1.28 KB

Contents

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

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

    Filter : function Filter() {
      var scope  = ['*'];
      var filter = this;

      if(arguments.length) {
        var first = arguments[0];

        if('object' === typeof first) {
          scope  = $.isArray(first.scope) ? first.scope : [first.scope || '*'];
          filter = {
            before : (first.before || function no_op() {}),
            after  : (first.after  || function no_op() {})
          };
        }
        else {
          scope = arguments;
        }
      }

      $.each(scope, function(i, selector) {
        if(selector === '*') {
          Coolerator.Filters.global.push(filter);
        }
        else {
          Coolerator.Filters.scoped[selector || '*'] = $.merge(Coolerator.Filters.scoped[selector || '*'] || [], [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.2.2 public/javascripts/vendor/coolerator/coolerator.filter.js