async-rails 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/async-rails/version.rb +1 -1
- data/vendor/assets/javascripts/async.js +181 -76
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d28e11df0279381c8d0e03b6a2f51ecf9253846
|
4
|
+
data.tar.gz: e2e6a3d8e860fdab23ae6534d7700e56f670a7a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 053811083f01269722e23d9f066d2d4846aa0ef8474717361f3d09b55fcb344614db1096792cce018b86bfe7b65df2302940861d351bbcfbc0e86a03ff45cc3b
|
7
|
+
data.tar.gz: 8606494455f7a21cf80951e24c9e280aa1a500c003382282e78e15d41518a77bc978ca66d32e4eca9c017d6796bdac03a0fb8d291a1da71a3cd3626585165e57
|
data/lib/async-rails/version.rb
CHANGED
@@ -11,20 +11,17 @@
|
|
11
11
|
function noop() {}
|
12
12
|
|
13
13
|
// global on the server, window in the browser
|
14
|
-
var
|
14
|
+
var previous_async;
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
else {
|
23
|
-
root = this;
|
24
|
-
}
|
16
|
+
// Establish the root object, `window` (`self`) in the browser, `global`
|
17
|
+
// on the server, or `this` in some virtual machines. We use `self`
|
18
|
+
// instead of `window` for `WebWorker` support.
|
19
|
+
var root = typeof self === 'object' && self.self === self && self ||
|
20
|
+
typeof global === 'object' && global.global === global && global ||
|
21
|
+
this;
|
25
22
|
|
26
23
|
if (root != null) {
|
27
|
-
|
24
|
+
previous_async = root.async;
|
28
25
|
}
|
29
26
|
|
30
27
|
async.noConflict = function () {
|
@@ -74,23 +71,23 @@
|
|
74
71
|
}
|
75
72
|
|
76
73
|
function _arrayEach(arr, iterator) {
|
77
|
-
|
78
|
-
|
74
|
+
var index = -1,
|
75
|
+
length = arr.length;
|
79
76
|
|
80
|
-
|
81
|
-
|
82
|
-
|
77
|
+
while (++index < length) {
|
78
|
+
iterator(arr[index], index, arr);
|
79
|
+
}
|
83
80
|
}
|
84
81
|
|
85
82
|
function _map(arr, iterator) {
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
83
|
+
var index = -1,
|
84
|
+
length = arr.length,
|
85
|
+
result = Array(length);
|
86
|
+
|
87
|
+
while (++index < length) {
|
88
|
+
result[index] = iterator(arr[index], index, arr);
|
89
|
+
}
|
90
|
+
return result;
|
94
91
|
}
|
95
92
|
|
96
93
|
function _range(count) {
|
@@ -146,13 +143,13 @@
|
|
146
143
|
var length = arr.length;
|
147
144
|
|
148
145
|
if (start) {
|
149
|
-
|
150
|
-
|
146
|
+
length -= start;
|
147
|
+
length = length < 0 ? 0 : length;
|
151
148
|
}
|
152
149
|
var result = Array(length);
|
153
150
|
|
154
151
|
while (++index < length) {
|
155
|
-
|
152
|
+
result[index] = arr[index + start];
|
156
153
|
}
|
157
154
|
return result;
|
158
155
|
}
|
@@ -193,7 +190,7 @@
|
|
193
190
|
if (_setImmediate) {
|
194
191
|
async.setImmediate = function (fn) {
|
195
192
|
// not a direct alias for IE10 compatibility
|
196
|
-
|
193
|
+
_setImmediate(fn);
|
197
194
|
};
|
198
195
|
}
|
199
196
|
else {
|
@@ -230,15 +227,15 @@
|
|
230
227
|
iterator(object[key], key, only_once(done));
|
231
228
|
});
|
232
229
|
function done(err) {
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
230
|
+
if (err) {
|
231
|
+
callback(err);
|
232
|
+
}
|
233
|
+
else {
|
234
|
+
completed += 1;
|
235
|
+
if (completed >= size) {
|
236
|
+
callback(null);
|
237
|
+
}
|
238
|
+
}
|
242
239
|
}
|
243
240
|
};
|
244
241
|
|
@@ -416,24 +413,11 @@
|
|
416
413
|
async.filterSeries = doSeries(_filter);
|
417
414
|
|
418
415
|
function _reject(eachfn, arr, iterator, callback) {
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
});
|
423
|
-
eachfn(arr, function (x, index, callback) {
|
424
|
-
iterator(x.value, function (v) {
|
425
|
-
if (!v) {
|
426
|
-
results.push(x);
|
427
|
-
}
|
428
|
-
callback();
|
416
|
+
_filter(eachfn, arr, function(value, cb) {
|
417
|
+
iterator(value, function(v) {
|
418
|
+
cb(!v);
|
429
419
|
});
|
430
|
-
},
|
431
|
-
callback(_map(results.sort(function (a, b) {
|
432
|
-
return a.index - b.index;
|
433
|
-
}), function (x) {
|
434
|
-
return x.value;
|
435
|
-
}));
|
436
|
-
});
|
420
|
+
}, callback);
|
437
421
|
}
|
438
422
|
async.reject = doParallel(_reject);
|
439
423
|
async.rejectSeries = doSeries(_reject);
|
@@ -601,17 +585,55 @@
|
|
601
585
|
});
|
602
586
|
};
|
603
587
|
|
604
|
-
|
588
|
+
|
589
|
+
|
590
|
+
async.retry = function(/*[times,] task [, callback]*/) {
|
605
591
|
var DEFAULT_TIMES = 5;
|
592
|
+
var DEFAULT_INTERVAL = 0;
|
593
|
+
|
606
594
|
var attempts = [];
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
595
|
+
|
596
|
+
var opts = {
|
597
|
+
times: DEFAULT_TIMES,
|
598
|
+
interval: DEFAULT_INTERVAL
|
599
|
+
};
|
600
|
+
|
601
|
+
function parseTimes(acc, t){
|
602
|
+
if(typeof t === 'number'){
|
603
|
+
acc.times = parseInt(t, 10) || DEFAULT_TIMES;
|
604
|
+
} else if(typeof t === 'object'){
|
605
|
+
acc.times = parseInt(t.times, 10) || DEFAULT_TIMES;
|
606
|
+
acc.interval = parseInt(t.interval, 10) || DEFAULT_INTERVAL;
|
607
|
+
} else {
|
608
|
+
throw new Error('Unsupported argument type for \'times\': ' + typeof(t));
|
609
|
+
}
|
612
610
|
}
|
613
|
-
|
614
|
-
|
611
|
+
|
612
|
+
switch(arguments.length){
|
613
|
+
case 1: {
|
614
|
+
opts.task = arguments[0];
|
615
|
+
break;
|
616
|
+
}
|
617
|
+
case 2 : {
|
618
|
+
if(typeof arguments[0] === 'number' || typeof arguments[0] === 'object'){
|
619
|
+
parseTimes(opts, arguments[0]);
|
620
|
+
opts.task = arguments[1];
|
621
|
+
} else {
|
622
|
+
opts.task = arguments[0];
|
623
|
+
opts.callback = arguments[1];
|
624
|
+
}
|
625
|
+
break;
|
626
|
+
}
|
627
|
+
case 3: {
|
628
|
+
parseTimes(opts, arguments[0]);
|
629
|
+
opts.task = arguments[1];
|
630
|
+
opts.callback = arguments[2];
|
631
|
+
break;
|
632
|
+
}
|
633
|
+
default: {
|
634
|
+
throw new Error('Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)');
|
635
|
+
}
|
636
|
+
}
|
615
637
|
|
616
638
|
function wrappedTask(wrappedCallback, wrappedResults) {
|
617
639
|
function retryAttempt(task, finalAttempt) {
|
@@ -622,24 +644,38 @@
|
|
622
644
|
};
|
623
645
|
}
|
624
646
|
|
625
|
-
|
626
|
-
|
647
|
+
function retryInterval(interval){
|
648
|
+
return function(seriesCallback){
|
649
|
+
setTimeout(function(){
|
650
|
+
seriesCallback(null);
|
651
|
+
}, interval);
|
652
|
+
};
|
627
653
|
}
|
654
|
+
|
655
|
+
while (opts.times) {
|
656
|
+
|
657
|
+
var finalAttempt = !(opts.times-=1);
|
658
|
+
attempts.push(retryAttempt(opts.task, finalAttempt));
|
659
|
+
if(!finalAttempt && opts.interval > 0){
|
660
|
+
attempts.push(retryInterval(opts.interval));
|
661
|
+
}
|
662
|
+
}
|
663
|
+
|
628
664
|
async.series(attempts, function(done, data){
|
629
665
|
data = data[data.length - 1];
|
630
|
-
(wrappedCallback || callback)(data.err, data.result);
|
666
|
+
(wrappedCallback || opts.callback)(data.err, data.result);
|
631
667
|
});
|
632
668
|
}
|
633
669
|
|
634
670
|
// If a callback is passed, run this as a controll flow
|
635
|
-
return callback ? wrappedTask() : wrappedTask;
|
671
|
+
return opts.callback ? wrappedTask() : wrappedTask;
|
636
672
|
};
|
637
673
|
|
638
674
|
async.waterfall = function (tasks, callback) {
|
639
675
|
callback = _once(callback || noop);
|
640
676
|
if (!_isArray(tasks)) {
|
641
|
-
|
642
|
-
|
677
|
+
var err = new Error('First argument to waterfall must be an array of functions');
|
678
|
+
return callback(err);
|
643
679
|
}
|
644
680
|
if (!tasks.length) {
|
645
681
|
return callback();
|
@@ -749,6 +785,7 @@
|
|
749
785
|
async.concatSeries = doSeries(_concat);
|
750
786
|
|
751
787
|
async.whilst = function (test, iterator, callback) {
|
788
|
+
callback = callback || noop;
|
752
789
|
if (test()) {
|
753
790
|
iterator(function (err) {
|
754
791
|
if (err) {
|
@@ -763,6 +800,7 @@
|
|
763
800
|
};
|
764
801
|
|
765
802
|
async.doWhilst = function (iterator, test, callback) {
|
803
|
+
callback = callback || noop;
|
766
804
|
iterator(function (err) {
|
767
805
|
if (err) {
|
768
806
|
return callback(err);
|
@@ -778,6 +816,7 @@
|
|
778
816
|
};
|
779
817
|
|
780
818
|
async.until = function (test, iterator, callback) {
|
819
|
+
callback = callback || noop;
|
781
820
|
if (!test()) {
|
782
821
|
iterator(function (err) {
|
783
822
|
if (err) {
|
@@ -792,6 +831,7 @@
|
|
792
831
|
};
|
793
832
|
|
794
833
|
async.doUntil = function (iterator, test, callback) {
|
834
|
+
callback = callback || noop;
|
795
835
|
iterator(function (err) {
|
796
836
|
if (err) {
|
797
837
|
return callback(err);
|
@@ -806,6 +846,48 @@
|
|
806
846
|
});
|
807
847
|
};
|
808
848
|
|
849
|
+
async.during = function (test, iterator, callback) {
|
850
|
+
callback = callback || noop;
|
851
|
+
test(function(err, truth) {
|
852
|
+
if (err) {
|
853
|
+
return callback(err);
|
854
|
+
}
|
855
|
+
if (truth) {
|
856
|
+
iterator(function (err) {
|
857
|
+
if (err) {
|
858
|
+
return callback(err);
|
859
|
+
}
|
860
|
+
async.during(test, iterator, callback);
|
861
|
+
});
|
862
|
+
}
|
863
|
+
else {
|
864
|
+
callback(null);
|
865
|
+
}
|
866
|
+
});
|
867
|
+
};
|
868
|
+
|
869
|
+
async.doDuring = function (iterator, test, callback) {
|
870
|
+
callback = callback || noop;
|
871
|
+
iterator(function (err) {
|
872
|
+
if (err) {
|
873
|
+
return callback(err);
|
874
|
+
}
|
875
|
+
var args = _baseSlice(arguments, 1);
|
876
|
+
args.push(function (err, truth) {
|
877
|
+
if (err) {
|
878
|
+
return callback(err);
|
879
|
+
}
|
880
|
+
if (truth) {
|
881
|
+
async.doDuring(iterator, test, callback);
|
882
|
+
}
|
883
|
+
else {
|
884
|
+
callback(null);
|
885
|
+
}
|
886
|
+
});
|
887
|
+
test.apply(null, args);
|
888
|
+
});
|
889
|
+
};
|
890
|
+
|
809
891
|
function _queue(worker, concurrency, payload) {
|
810
892
|
if (concurrency == null) {
|
811
893
|
concurrency = 1;
|
@@ -834,9 +916,9 @@
|
|
834
916
|
};
|
835
917
|
|
836
918
|
if (pos) {
|
837
|
-
|
919
|
+
q.tasks.unshift(item);
|
838
920
|
} else {
|
839
|
-
|
921
|
+
q.tasks.push(item);
|
840
922
|
}
|
841
923
|
|
842
924
|
if (q.tasks.length === q.concurrency) {
|
@@ -863,6 +945,7 @@
|
|
863
945
|
var q = {
|
864
946
|
tasks: [],
|
865
947
|
concurrency: concurrency,
|
948
|
+
payload: payload,
|
866
949
|
saturated: noop,
|
867
950
|
empty: noop,
|
868
951
|
drain: noop,
|
@@ -881,8 +964,8 @@
|
|
881
964
|
process: function () {
|
882
965
|
if (!q.paused && workers < q.concurrency && q.tasks.length) {
|
883
966
|
while(workers < q.concurrency && q.tasks.length){
|
884
|
-
var tasks = payload ?
|
885
|
-
q.tasks.splice(0, payload) :
|
967
|
+
var tasks = q.payload ?
|
968
|
+
q.tasks.splice(0, q.payload) :
|
886
969
|
q.tasks.splice(0, q.tasks.length);
|
887
970
|
|
888
971
|
var data = _map(tasks, function (task) {
|
@@ -1062,9 +1145,9 @@
|
|
1062
1145
|
};
|
1063
1146
|
|
1064
1147
|
async.unmemoize = function (fn) {
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1148
|
+
return function () {
|
1149
|
+
return (fn.unmemoized || fn).apply(null, arguments);
|
1150
|
+
};
|
1068
1151
|
};
|
1069
1152
|
|
1070
1153
|
function _times(mapper) {
|
@@ -1106,7 +1189,7 @@
|
|
1106
1189
|
};
|
1107
1190
|
|
1108
1191
|
async.compose = function (/* functions... */) {
|
1109
|
-
|
1192
|
+
return async.seq.apply(null, Array.prototype.reverse.call(arguments));
|
1110
1193
|
};
|
1111
1194
|
|
1112
1195
|
|
@@ -1173,6 +1256,28 @@
|
|
1173
1256
|
|
1174
1257
|
async.ensureAsync = ensureAsync;
|
1175
1258
|
|
1259
|
+
async.constant = function constant(/*values...*/) {
|
1260
|
+
var args = [null].concat(_baseSlice(arguments));
|
1261
|
+
return function (callback) {
|
1262
|
+
return callback.apply(this, args);
|
1263
|
+
};
|
1264
|
+
};
|
1265
|
+
|
1266
|
+
async.wrapSync =
|
1267
|
+
async.asyncify = function asyncify(func) {
|
1268
|
+
return function (/*args..., callback*/) {
|
1269
|
+
var args = _baseSlice(arguments);
|
1270
|
+
var callback = args.pop();
|
1271
|
+
var result;
|
1272
|
+
try {
|
1273
|
+
result = func.apply(this, args);
|
1274
|
+
} catch (e) {
|
1275
|
+
return callback(e);
|
1276
|
+
}
|
1277
|
+
callback(null, result);
|
1278
|
+
};
|
1279
|
+
};
|
1280
|
+
|
1176
1281
|
// Node.js
|
1177
1282
|
if (typeof module !== 'undefined' && module.exports) {
|
1178
1283
|
module.exports = async;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: async-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Chen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|