From 289dd5b676363e4ae070a351afb448605b585158 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 23 May 2014 03:31:53 -0400 Subject: [PATCH] feature(util) loadOnLoad -> exec.series --- lib/client.js | 2 +- lib/client/config.js | 2 +- lib/client/console.js | 2 +- lib/client/edit.js | 2 +- lib/client/markdown.js | 2 +- lib/client/menu.js | 2 +- lib/client/storage/_dropbox.js | 28 +++++++++--------- lib/client/storage/_filepicker.js | 2 +- lib/client/storage/_gdrive.js | 2 +- lib/client/storage/_github.js | 4 +-- lib/client/storage/_skydrive.js | 2 +- lib/client/storage/_vk.js | 2 +- lib/client/terminal.js | 2 +- lib/client/view.js | 2 +- lib/server.js | 14 ++++----- lib/util.js | 49 ++++++++++++------------------- 16 files changed, 52 insertions(+), 67 deletions(-) diff --git a/lib/client.js b/lib/client.js index 1fd7c2d7..7ca51e09 100644 --- a/lib/client.js +++ b/lib/client.js @@ -148,7 +148,7 @@ var Util, DOM, CloudFunc; */ this.init = function() { var callback = function() { - Util.loadOnLoad([ + Util.exec.series([ initModules, baseInit, Util.bind(CloudCmd.route, location.hash) diff --git a/lib/client/config.js b/lib/client/config.js index 8812cbc9..c600cc75 100644 --- a/lib/client/config.js +++ b/lib/client/config.js @@ -23,7 +23,7 @@ var CloudCmd, Util, DOM; Loading = true; showLoad(); - Util.loadOnLoad([ + Util.exec.series([ CloudCmd.View, function(callback) { Loading = false; diff --git a/lib/client/console.js b/lib/client/console.js index 1599275d..b291ea0e 100644 --- a/lib/client/console.js +++ b/lib/client/console.js @@ -29,7 +29,7 @@ var CloudCmd, Util, DOM, CloudFunc, $; function init() { Loading = true; - Util.loadOnLoad([ + Util.exec.series([ DOM.jqueryLoad, CloudCmd.View, load, diff --git a/lib/client/edit.js b/lib/client/edit.js index 6ace1d3b..e65543db 100644 --- a/lib/client/edit.js +++ b/lib/client/edit.js @@ -26,7 +26,7 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch, Zip, MenuI function init() { Loading = true; - Util.loadOnLoad([ + Util.exec.series([ CloudCmd.View, load, Edit.show diff --git a/lib/client/markdown.js b/lib/client/markdown.js index 61f28a7f..bec2b406 100644 --- a/lib/client/markdown.js +++ b/lib/client/markdown.js @@ -15,7 +15,7 @@ var CloudCmd, Util, DOM; top:true }); - Util.loadOnLoad([ + Util.exec.series([ CloudCmd.View, Util.bind(MD.show, null, null), ]); diff --git a/lib/client/menu.js b/lib/client/menu.js index 474ff45c..0cd1a57f 100644 --- a/lib/client/menu.js +++ b/lib/client/menu.js @@ -22,7 +22,7 @@ var CloudCmd, Util, DOM, CloudFunc, MenuIO; function init() { Loading = true; - Util.loadOnLoad([ + Util.exec.series([ DOM.menuLoad, Menu.show ]); diff --git a/lib/client/storage/_dropbox.js b/lib/client/storage/_dropbox.js index fab7a1e9..48ae65fd 100644 --- a/lib/client/storage/_dropbox.js +++ b/lib/client/storage/_dropbox.js @@ -5,15 +5,15 @@ var CloudCmd, Util, DOM, CloudFunc, Dropbox, cb, Client; CloudCmd.DropBox = DropBoxProto; - function DropBoxProto(pCallBack) { + function DropBoxProto(callback) { var DropBoxStore = this; - function init(pCallBack){ - Util.loadOnLoad([ + function init(callback){ + Util.exec.series([ load, DropBoxStore.login, getUserData, - Util.exec.ret(pCallBack) + Util.exec.ret(callback) ]); } @@ -23,7 +23,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dropbox, cb, Client; /** * function loads dropbox.js */ - function load(pCallBack){ + function load(callback) { console.time('dropbox load'); var lSrc = '//cdnjs.cloudflare.com/ajax/libs/dropbox.js/0.10.2/dropbox.min.js', @@ -32,7 +32,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dropbox, cb, Client; console.timeEnd('dropbox load'); DOM.Images.hide(); - Util.exec(pCallBack); + Util.exec(callback); }; DOM.jsload(lSrc, { @@ -42,7 +42,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dropbox, cb, Client; } - function getUserData(pCallBack){ + function getUserData(callback) { Client.getUserInfo(function(pError, pData){ var lHello = 'Hello ' + pData.name + ' :)!', lMsg = pError ? pError : lHello; @@ -50,14 +50,14 @@ var CloudCmd, Util, DOM, CloudFunc, Dropbox, cb, Client; Util.log(lMsg); }); - Util.exec(pCallBack); + Util.exec(callback); } /** * function logins on dropbox * * @param pData = {key, secret} */ - this.login = function(pCallBack){ + this.login = function(callback) { CloudCmd.getModules(function(pModules){ var lStorage = Util.findObjByNameInArr(pModules, 'storage'), lDropBox = Util.findObjByNameInArr(lStorage, 'DropBox'), @@ -74,10 +74,10 @@ var CloudCmd, Util, DOM, CloudFunc, Dropbox, cb, Client; receiverUrl: lURL, noFragment: true })); - Client.authenticate(function(pError, pClient) { - Util.log(pError); - Client = pClient; - Util.exec(pCallBack); + Client.authenticate(function(error, client) { + Util.log(error); + Client = client; + Util.exec(callback); }); }); @@ -210,7 +210,7 @@ var CloudCmd, Util, DOM, CloudFunc, Dropbox, cb, Client; }); } - init(pCallBack); + init(callback); } })(CloudCmd, Util, DOM, CloudFunc); diff --git a/lib/client/storage/_filepicker.js b/lib/client/storage/_filepicker.js index 6ce2c3cc..2c4a7071 100644 --- a/lib/client/storage/_filepicker.js +++ b/lib/client/storage/_filepicker.js @@ -8,7 +8,7 @@ var CloudCmd, Util, DOM, filepicker; function FilePickerProto(callback) { function init(callback) { - Util.loadOnLoad([ + Util.exec.series([ load, callback, ]); diff --git a/lib/client/storage/_gdrive.js b/lib/client/storage/_gdrive.js index 75157095..a1af7938 100644 --- a/lib/client/storage/_gdrive.js +++ b/lib/client/storage/_gdrive.js @@ -97,7 +97,7 @@ var CloudCmd, Util, DOM, gapi; GDrive.init = function(callback) { - Util.loadOnLoad([ + Util.exec.series([ load, Util.exec.ret(callback) ]); diff --git a/lib/client/storage/_github.js b/lib/client/storage/_github.js index 9ca40586..28dec2db 100644 --- a/lib/client/storage/_github.js +++ b/lib/client/storage/_github.js @@ -15,7 +15,7 @@ var CloudCmd, Util, DOM, CloudFunc, Github, cb; cb = function (err, data) { Util.log(err || data);}; function init(callback) { - Util.loadOnLoad([ + Util.exec.series([ load, GitHub.autorize, GitHub.getUserData, @@ -23,7 +23,7 @@ var CloudCmd, Util, DOM, CloudFunc, Github, cb; ]); GitHub.callback = function() { - Util.loadOnLoad([ + Util.exec.series([ GitHub.getUserData, Util.exec.ret(callback) ]); diff --git a/lib/client/storage/_skydrive.js b/lib/client/storage/_skydrive.js index 66c5fffc..02aa3a51 100644 --- a/lib/client/storage/_skydrive.js +++ b/lib/client/storage/_skydrive.js @@ -66,7 +66,7 @@ var CloudCmd, Util, DOM, WL; } SkyDrive.init = function(callback) { - Util.loadOnLoad([ + Util.exec.series([ load, auth, Util.exec.ret(callback) diff --git a/lib/client/storage/_vk.js b/lib/client/storage/_vk.js index b4c7dd0b..bc415de0 100644 --- a/lib/client/storage/_vk.js +++ b/lib/client/storage/_vk.js @@ -84,7 +84,7 @@ var CloudCmd, Util, DOM, VK; }; VKStorage.init = function(callback) { - Util.loadOnLoad([ + Util.exec.series([ load, auth, Util.exec.ret(callback) diff --git a/lib/client/terminal.js b/lib/client/terminal.js index 0336d4d7..4244783b 100644 --- a/lib/client/terminal.js +++ b/lib/client/terminal.js @@ -25,7 +25,7 @@ var CloudCmd, Util, DOM, CloudFunc, Terminal; function init() { Loading = true; - Util.loadOnLoad([ + Util.exec.series([ DOM.jqueryLoad, CloudCmd.View, load, diff --git a/lib/client/view.js b/lib/client/view.js index 9289615c..2364848c 100644 --- a/lib/client/view.js +++ b/lib/client/view.js @@ -52,7 +52,7 @@ var CloudCmd, Util, DOM, CloudFunc, $; Loading = true; - Util.loadOnLoad([ + Util.exec.series([ DOM.jqueryLoad, load, func diff --git a/lib/server.js b/lib/server.js index 922242e7..befb352b 100644 --- a/lib/server.js +++ b/lib/server.js @@ -168,24 +168,20 @@ } function respond(req, res) { - var i, n, func, - funcs = ([ + var funcs = ([ Rest, Route, join, controller ]); - n = funcs.length; - for (i = 0; i < n; i++) { - func = funcs[i]; - funcs[i] = func.bind(null, req, res); - } + funcs.map(function(func) { + return Util.bind(func, req, res); + }); - Util.loadOnLoad(funcs); + Util.exec.series(funcs); } - /** * Главная функция, через которую проихсодит * взаимодействие, обмен данными с клиентом diff --git a/lib/util.js b/lib/util.js index 11cdd30d..1742cd90 100644 --- a/lib/util.js +++ b/lib/util.js @@ -380,25 +380,6 @@ return pArg; }; - /** - * load functions thrue callbacks one-by-one - * @param funcs {Array} - array of functions - */ - this.loadOnLoad = function(funcs) { - var func, callback, - isArray = Util.isArray(funcs); - - if (isArray) { - func = funcs.shift(); - - callback = function() { - return Util.loadOnLoad(funcs); - }; - - Util.exec(func, callback); - } - }; - /** * function remove substring from string * @param str @@ -660,17 +641,6 @@ return pParam; }; - /** - * return load functions thrue callbacks one-by-one - * @param pFunc_a {Array} - array of functions - * @param pData - not necessarily - */ - this.retLoadOnLoad = function(pFunc_a, pData) { - return function() { - Util.loadOnLoad(pFunc_a, pData); - }; - }; - /** * function makes new array based on first * @@ -874,6 +844,25 @@ } }; + /** + * load functions thrue callbacks one-by-one + * @param funcs {Array} - array of functions + */ + exec.series = function(funcs) { + var func, callback, + isArray = Util.isArray(funcs); + + if (isArray) { + func = funcs.shift(); + + callback = function() { + return exec.series(funcs); + }; + + exec(func, callback); + } + }; + return exec; }