Sha256: bc038f86035fba71f30260c10b4497186e4f6573d8dd0e8e43de20bf6d86c00c

Contents?: true

Size: 1.67 KB

Versions: 24

Compression:

Stored size: 1.67 KB

Contents

module.exports = CollectingHandler;

function CollectingHandler(cbs) {
    this._cbs = cbs || {};
    this.events = [];
}

var EVENTS = require("./").EVENTS;
Object.keys(EVENTS).forEach(function(name) {
    if (EVENTS[name] === 0) {
        name = "on" + name;
        CollectingHandler.prototype[name] = function() {
            this.events.push([name]);
            if (this._cbs[name]) this._cbs[name]();
        };
    } else if (EVENTS[name] === 1) {
        name = "on" + name;
        CollectingHandler.prototype[name] = function(a) {
            this.events.push([name, a]);
            if (this._cbs[name]) this._cbs[name](a);
        };
    } else if (EVENTS[name] === 2) {
        name = "on" + name;
        CollectingHandler.prototype[name] = function(a, b) {
            this.events.push([name, a, b]);
            if (this._cbs[name]) this._cbs[name](a, b);
        };
    } else {
        throw Error("wrong number of arguments");
    }
});

CollectingHandler.prototype.onreset = function() {
    this.events = [];
    if (this._cbs.onreset) this._cbs.onreset();
};

CollectingHandler.prototype.restart = function() {
    if (this._cbs.onreset) this._cbs.onreset();

    for (var i = 0, len = this.events.length; i < len; i++) {
        if (this._cbs[this.events[i][0]]) {
            var num = this.events[i].length;

            if (num === 1) {
                this._cbs[this.events[i][0]]();
            } else if (num === 2) {
                this._cbs[this.events[i][0]](this.events[i][1]);
            } else {
                this._cbs[this.events[i][0]](
                    this.events[i][1],
                    this.events[i][2]
                );
            }
        }
    }
};

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
trusty-cms-6.3.1 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.7 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.6 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.5 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.4 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.3 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.2 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.1 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.3.5 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-5.0.0 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.3.4 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.3.3 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.3.2 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.3.1 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.3 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.2.3 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.2.2 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.2.1 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.2 node_modules/htmlparser2/lib/CollectingHandler.js
trusty-cms-4.1.9 node_modules/htmlparser2/lib/CollectingHandler.js