mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 10:45:47 +00:00
feature(util) mv addListener, removeListener from cloudfunc
This commit is contained in:
parent
e7dad86f91
commit
5e12b475bb
4 changed files with 77 additions and 60 deletions
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
var CloudCmd, Util, DOM, CloudFunc, io;
|
||||
var CloudCmd, Util, DOM, io;
|
||||
|
||||
(function(CloudCmd, Util, DOM, CloudFunc) {
|
||||
(function(CloudCmd, Util, DOM) {
|
||||
'use strict';
|
||||
|
||||
CloudCmd.Socket = SocketProto;
|
||||
|
|
@ -34,11 +34,11 @@ var CloudCmd, Util, DOM, CloudFunc, io;
|
|||
}
|
||||
|
||||
function addListener(name, func) {
|
||||
CloudFunc.addListener(name, func, AllListeners, socket);
|
||||
Util.addListener(name, func, AllListeners, socket);
|
||||
}
|
||||
|
||||
function removeListener(name, func) {
|
||||
CloudFunc.removeListener(name, func, AllListeners, socket);
|
||||
Util.removeListener(name, func, AllListeners, socket);
|
||||
}
|
||||
|
||||
function send(data) {
|
||||
|
|
@ -92,4 +92,4 @@ var CloudCmd, Util, DOM, CloudFunc, io;
|
|||
return Socket;
|
||||
}
|
||||
|
||||
})(CloudCmd, Util, DOM, CloudFunc);
|
||||
})(CloudCmd, Util, DOM);
|
||||
|
|
|
|||
|
|
@ -33,58 +33,7 @@ var Util;
|
|||
this.CHANNEL_TERMINAL_RESIZE= 'terminal-resize';
|
||||
this.MAX_FILE_SIZE = 500 * 1024;
|
||||
|
||||
this.addListener = function(name, func, allListeners, socket) {
|
||||
var listeners, obj,
|
||||
type = Util.getType(name);
|
||||
|
||||
switch(type) {
|
||||
case 'string':
|
||||
listeners = allListeners[name];
|
||||
|
||||
if (!listeners)
|
||||
listeners = allListeners[name] = [];
|
||||
|
||||
listeners.push(func);
|
||||
|
||||
if (func && socket)
|
||||
socket.on(name, func);
|
||||
|
||||
break;
|
||||
|
||||
case 'object':
|
||||
obj = name;
|
||||
|
||||
Object.keys(obj).forEach(function(name) {
|
||||
func = obj[name];
|
||||
CloudFunc.addListener(name, func, allListeners, socket);
|
||||
});
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
this.removeListener = function(name, func, allListeners, socket) {
|
||||
var listeners;
|
||||
|
||||
if (socket)
|
||||
socket.removeListener(name, func);
|
||||
|
||||
listeners = allListeners[name];
|
||||
|
||||
if (listeners)
|
||||
listeners = listeners.map(function(listener) {
|
||||
if (listener === func)
|
||||
listener = null;
|
||||
|
||||
return listener;
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
/**
|
||||
* ad new line (if it's not)
|
||||
* @param {string} pText
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -2,8 +2,9 @@
|
|||
'use strict';
|
||||
|
||||
var main = global.cloudcmd.main,
|
||||
DIR = '../',
|
||||
io = main.require('socket.io'),
|
||||
CloudFunc = main.cloudfunc,
|
||||
Util = require(DIR + 'util'),
|
||||
AllListeners = [];
|
||||
|
||||
exports.on = addListener;
|
||||
|
|
@ -17,11 +18,11 @@
|
|||
if (!socket)
|
||||
socket = io.sockets;
|
||||
|
||||
CloudFunc.addListener(name, func, AllListeners, socket);
|
||||
Util.addListener(name, func, AllListeners, socket);
|
||||
}
|
||||
|
||||
function removeListener(name, func, socket) {
|
||||
CloudFunc.removeListener(name, func, AllListeners, socket);
|
||||
Util.removeListener(name, func, AllListeners, socket);
|
||||
}
|
||||
|
||||
function send(msg, socket) {
|
||||
|
|
|
|||
67
lib/util.js
67
lib/util.js
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue