Slot Cache

Cache for slots that haven't been created yet.

var singles = {},
    events = {},
    targeting = {};

Cache(name)

Params
name string Name of this group.
Returns
SlotCache
module.exports = function (slot) {
    return {

cache.set

Type
Object
        set: {

event(name, callback)

Params
name string
cb function
            event: function (name, cb) {
                var cache = events[slot] = events[slot] || {};
                cache[name] = cache[name] || [];
                cache[name].push(cb);
            },

single(name, callback)

Params
name string
cb function
            single: function (name, cb) {
                var cache = singles[slot] = singles[slot] || {};
                cache[name] = cache[name] || [];
                cache[name].push(cb);
            },

targeting(name, value)

Params
name string
value string
            targeting: function (name, value) {
                targeting[slot] = targeting[slot] || {};
                targeting[slot][name] = value;
            }
        },

cache.get

Type
Object
        get: {

events(name)

Params
name string
Returns
Array.<function>
            events: function () {
                return events[slot] || [];
            },

singles(name)

Params
name string
Returns
Array.<function>
            singles: function () {
                return singles[slot] || [];
            },

targeting(name)

Params
name string
Returns
Object.<string, string>
            targeting: function () {
                return targeting[slot] || {};
            }
        }
    };
};

cache.clear()

Flush all data from cache.

module.exports.clear = function () {
    singles = {};
    events = {};
    targeting = {};
};