feature(util) mv addListener, removeListener from cloudfunc

This commit is contained in:
coderaiser 2014-07-01 04:24:04 -04:00
parent e7dad86f91
commit 5e12b475bb
4 changed files with 77 additions and 60 deletions

View file

@ -26,6 +26,73 @@
return new F();
};
/**
* add listener to observer
*
* @param name - event name
* @param func - function
* @param allListeners - listeners array
* @param observer - observer object
*/
this.addListener = function(name, func, allListeners, observer) {
var listeners, obj,
type = Util.getType(name);
switch(type) {
case 'string':
listeners = allListeners[name];
if (!listeners)
listeners = allListeners[name] = [];
listeners.push(func);
if (func && observer)
observer.on(name, func);
break;
case 'object':
obj = name;
Object.keys(obj).forEach(function(name) {
func = obj[name];
Util.addListener(name, func, allListeners, observer);
});
break;
}
return this;
};
/**
* remove listener from observer
*
* @param name - event name
* @param func - function
* @param allListeners - listeners array
* @param observer - observer object
*/
this.removeListener = function(name, func, allListeners, observer) {
var listeners;
if (observer)
observer.removeListener(name, func);
listeners = allListeners[name];
if (listeners)
listeners = listeners.map(function(listener) {
if (listener === func)
listener = null;
return listener;
});
return this;
};
/**
* Функция ищет в имени файла расширение
* и если находит возвращает true