From 04fe72565b9fdca348a31c29bc0bad09fbc5b332 Mon Sep 17 00:00:00 2001 From: RubaXa Date: Thu, 31 Jul 2014 13:31:48 +0400 Subject: [PATCH] + promise; + desc --- src/Context.es6 | 6 ++-- src/Ply.es6 | 19 +++++++++---- src/css.es6 | 4 +++ src/defaults.es6 | 4 +++ src/dom.es6 | 6 ++-- src/effects.es6 | 4 +++ src/effects.preset.es6 | 4 +++ src/jquery.es6 | 3 ++ src/lang.es6 | 4 +++ src/promise.js | 61 ++++++++++++++++++++++++++++++++++++++++ src/stack.es6 | 4 +++ src/support.es6 | 5 ++++ src/ui.es6 | 4 +++ src/utils.es6 | 64 ++---------------------------------------- 14 files changed, 120 insertions(+), 72 deletions(-) create mode 100644 src/promise.js diff --git a/src/Context.es6 b/src/Context.es6 index d13afcf..8de5d97 100644 --- a/src/Context.es6 +++ b/src/Context.es6 @@ -1,6 +1,6 @@ -// -// Ply-контекст -// +/** + * @desc Ply-контекст + */ /** diff --git a/src/Ply.es6 b/src/Ply.es6 index c6067d7..26923b2 100644 --- a/src/Ply.es6 +++ b/src/Ply.es6 @@ -6,16 +6,24 @@ /*global require, define, window */ ((factory) => { - window['Ply'] = factory(window); -})((window, Deferred) => { + 'use strict'; + + if( typeof define === 'function' && define.amd ){ + define(factory); + } + else { + window['Ply'] = factory(); + } +})(() => { 'use strict'; var gid = 1, noop = () => {}, - document = window.document, - setTimeout = window.setTimeout, + env = window, + document = env.document, + setTimeout = env.setTimeout, lang = require('lang'), support = require('support'), @@ -38,8 +46,9 @@ // - // Утилиты, CSS, DOM + // Обещания, Утилиты, CSS, DOM // + require('promise'); require('utils'); require('dom'); require('css'); diff --git a/src/css.es6 b/src/css.es6 index a551252..5ba6b6e 100644 --- a/src/css.es6 +++ b/src/css.es6 @@ -1,3 +1,7 @@ +/** + * @desc Функция для работы с style + */ + /*global support, document*/ diff --git a/src/defaults.es6 b/src/defaults.es6 index 01c26b5..69e1114 100644 --- a/src/defaults.es6 +++ b/src/defaults.es6 @@ -1,3 +1,7 @@ +/** + * @desc Найтроки по умолчанию + */ + module.exports = { zIndex: 10000, diff --git a/src/dom.es6 b/src/dom.es6 index 8217c1b..56e0143 100644 --- a/src/dom.es6 +++ b/src/dom.es6 @@ -1,6 +1,6 @@ -// -// Работа с DOM -// +/** + * @desc Работа с DOM + */ var $ = require('jquery'); diff --git a/src/effects.es6 b/src/effects.es6 index c19a82a..906b35b 100644 --- a/src/effects.es6 +++ b/src/effects.es6 @@ -1,3 +1,7 @@ +/** + * @desc Объект для работы с эффектами + */ + module.exports = { // Установки по умолчанию defaults: { diff --git a/src/effects.preset.es6 b/src/effects.preset.es6 index d164dec..fad0b3b 100644 --- a/src/effects.preset.es6 +++ b/src/effects.preset.es6 @@ -1,3 +1,7 @@ +/** + * @desc Предустановленные эффекты + */ + module.exports = { // // Комбинированный эффекты diff --git a/src/jquery.es6 b/src/jquery.es6 index 96603eb..67af53f 100644 --- a/src/jquery.es6 +++ b/src/jquery.es6 @@ -1,3 +1,6 @@ +/** + * @desc $-like adapter + */ module.exports = window.jQuery || /* istanbul ignore next */ window.Zepto || /* istanbul ignore next */ window.ender diff --git a/src/lang.es6 b/src/lang.es6 index 8a08aa0..6eb3f93 100644 --- a/src/lang.es6 +++ b/src/lang.es6 @@ -1,3 +1,7 @@ +/** + * @desc Языковые константы + */ + module.exports = { ok: 'OK', cancel: 'Cancel', diff --git a/src/promise.js b/src/promise.js new file mode 100644 index 0000000..f4440af --- /dev/null +++ b/src/promise.js @@ -0,0 +1,61 @@ +/** + * @desc «Обещания» + */ + + +var Promise = window.Deferred || window.Promise; + + + +/** + * Создать «Обещание» + * @param {Function} executor + * @returns {Promise} + * @private + */ +function _promise(executor) { + /* istanbul ignore if */ + if (Promise) { + return new Promise(executor); + } else { + var dfd = $.Deferred(); + executor(dfd.resolve, dfd.reject); + return dfd; + } +} + + +/** + * Дождаться разрешения всех «Обещаний» + * @param {Promise[]} iterable + * @returns {Promise} + * @private + */ +function _promiseAll(iterable) { + return Promise + ? /* istanbul ignore next */ Promise.all(iterable) + : $.when.apply($, iterable); +} + + +/** + * Вернуть разрешенное «Обещание» + * @param {*} [value] + * @returns {Promise} + * @private + */ +function _resolvePromise(value) { + return _promise((resolve) => resolve(value)); +} + + +/** + * Привести значение к «Обещанию» + * @param {*} value + * @returns {Promise} + * @private + */ +function _cast(value) { + return value && value.then ? value : _resolvePromise(value); +} + diff --git a/src/stack.es6 b/src/stack.es6 index 9dc1348..370abcc 100644 --- a/src/stack.es6 +++ b/src/stack.es6 @@ -1,3 +1,7 @@ +/** + * @desc Работы со стеком + */ + var array_core = [], array_push = array_core.push, array_splice = array_core.splice diff --git a/src/support.es6 b/src/support.es6 index a73c7e8..11ec262 100644 --- a/src/support.es6 +++ b/src/support.es6 @@ -1,3 +1,8 @@ +/** + * @desc Что поддерживает браузер + */ + + /*global _buildDOM*/ module.exports = (() => { var props = {}, diff --git a/src/ui.es6 b/src/ui.es6 index c044e92..d5a2905 100644 --- a/src/ui.es6 +++ b/src/ui.es6 @@ -1,3 +1,7 @@ +/** + * @desc Диалоги + */ + /*global define, Ply */ ;;;(Ply => { 'use strict'; diff --git a/src/utils.es6 b/src/utils.es6 index d282c1e..58b145c 100644 --- a/src/utils.es6 +++ b/src/utils.es6 @@ -1,10 +1,6 @@ -// -// Вспомогательные методы -// - -var Promise = Deferred || window.Promise; - - +/** + * @desc Вспомогательные методы + */ /** @@ -17,60 +13,6 @@ function isFn(fn) { } -/** - * Создать «Обещание» - * @param {Function} executor - * @returns {Promise} - * @private - */ -function _promise(executor) { - /* istanbul ignore if */ - if (Promise) { - return new Promise(executor); - } else { - var dfd = $.Deferred(); - executor(dfd.resolve, dfd.reject); - return dfd; - } -} - - -/** - * Дождаться разрешения всех «Обещаний» - * @param {Promise[]} iterable - * @returns {Promise} - * @private - */ -function _promiseAll(iterable) { - return Promise - ? /* istanbul ignore next */ Promise.all(iterable) - : $.when.apply($, iterable); -} - - -/** - * Вернуть разрешенное «Обещание» - * @param {*} [value] - * @returns {Promise} - * @private - */ -function _resolvePromise(value) { - return _promise((resolve) => resolve(value)); -} - - -/** - * Привести значение к «Обещанию» - * @param {*} value - * @returns {Promise} - * @private - */ -function _cast(value) { - return value && value.then ? value : _resolvePromise(value); -} - - - /** * Object iterator * @param {Object|Array} obj