async-rails 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|