async-rails 0.2.6 → 0.2.7
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 +42 -72
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf7ed9ac6955d573c6be07f818c207a752b12942
|
4
|
+
data.tar.gz: a1d2ff576984764147b7567aa7b665c63f054346
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88acfee5cf852aa961b9980053efb67884f716ef9dc497fd67c75457e2feaebafb98de36414fb06608e6cecf7867330876cafcdc968694a3ed4ae7af337896a5
|
7
|
+
data.tar.gz: 209c1e3c6c4724f2d39b1c47410e30edea7fe0c4a62a598d92aea1546b11d4477aeb29b2eba86a10e2e6c768e85a436de506ee21d972f5aeb95e2d899d68d05d
|
data/lib/async-rails/version.rb
CHANGED
@@ -75,11 +75,11 @@
|
|
75
75
|
//// nextTick implementation with browser-compatible fallback ////
|
76
76
|
if (typeof process === 'undefined' || !(process.nextTick)) {
|
77
77
|
if (typeof setImmediate === 'function') {
|
78
|
-
async.
|
79
|
-
|
80
|
-
};
|
78
|
+
async.setImmediate = setImmediate;
|
79
|
+
async.nextTick = setImmediate;
|
81
80
|
}
|
82
81
|
else {
|
82
|
+
async.setImmediate = async.nextTick;
|
83
83
|
async.nextTick = function (fn) {
|
84
84
|
setTimeout(fn, 0);
|
85
85
|
};
|
@@ -87,6 +87,12 @@
|
|
87
87
|
}
|
88
88
|
else {
|
89
89
|
async.nextTick = process.nextTick;
|
90
|
+
if (typeof setImmediate !== 'undefined') {
|
91
|
+
async.setImmediate = setImmediate;
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
async.setImmediate = async.nextTick;
|
95
|
+
}
|
90
96
|
}
|
91
97
|
|
92
98
|
async.each = function (arr, iterator, callback) {
|
@@ -119,7 +125,6 @@
|
|
119
125
|
}
|
120
126
|
var completed = 0;
|
121
127
|
var iterate = function () {
|
122
|
-
var sync = true;
|
123
128
|
iterator(arr[completed], function (err) {
|
124
129
|
if (err) {
|
125
130
|
callback(err);
|
@@ -131,16 +136,10 @@
|
|
131
136
|
callback(null);
|
132
137
|
}
|
133
138
|
else {
|
134
|
-
|
135
|
-
async.nextTick(iterate);
|
136
|
-
}
|
137
|
-
else {
|
138
|
-
iterate();
|
139
|
-
}
|
139
|
+
iterate();
|
140
140
|
}
|
141
141
|
}
|
142
142
|
});
|
143
|
-
sync = false;
|
144
143
|
};
|
145
144
|
iterate();
|
146
145
|
};
|
@@ -441,7 +440,7 @@
|
|
441
440
|
}
|
442
441
|
else {
|
443
442
|
results[k] = args;
|
444
|
-
async.
|
443
|
+
async.setImmediate(taskComplete);
|
445
444
|
}
|
446
445
|
};
|
447
446
|
var requires = task.slice(0, Math.abs(task.length - 1)) || [];
|
@@ -467,6 +466,10 @@
|
|
467
466
|
|
468
467
|
async.waterfall = function (tasks, callback) {
|
469
468
|
callback = callback || function () {};
|
469
|
+
if (tasks.constructor !== Array) {
|
470
|
+
var err = new Error('First argument to waterfall must be an array of functions');
|
471
|
+
return callback(err);
|
472
|
+
}
|
470
473
|
if (!tasks.length) {
|
471
474
|
return callback();
|
472
475
|
}
|
@@ -485,7 +488,7 @@
|
|
485
488
|
else {
|
486
489
|
args.push(callback);
|
487
490
|
}
|
488
|
-
async.
|
491
|
+
async.setImmediate(function () {
|
489
492
|
iterator.apply(null, args);
|
490
493
|
});
|
491
494
|
}
|
@@ -607,21 +610,12 @@
|
|
607
610
|
|
608
611
|
async.whilst = function (test, iterator, callback) {
|
609
612
|
if (test()) {
|
610
|
-
var sync = true;
|
611
613
|
iterator(function (err) {
|
612
614
|
if (err) {
|
613
615
|
return callback(err);
|
614
616
|
}
|
615
|
-
|
616
|
-
async.nextTick(function () {
|
617
|
-
async.whilst(test, iterator, callback);
|
618
|
-
});
|
619
|
-
}
|
620
|
-
else {
|
621
|
-
async.whilst(test, iterator, callback);
|
622
|
-
}
|
617
|
+
async.whilst(test, iterator, callback);
|
623
618
|
});
|
624
|
-
sync = false;
|
625
619
|
}
|
626
620
|
else {
|
627
621
|
callback();
|
@@ -629,45 +623,27 @@
|
|
629
623
|
};
|
630
624
|
|
631
625
|
async.doWhilst = function (iterator, test, callback) {
|
632
|
-
var sync = true;
|
633
626
|
iterator(function (err) {
|
634
627
|
if (err) {
|
635
628
|
return callback(err);
|
636
629
|
}
|
637
630
|
if (test()) {
|
638
|
-
|
639
|
-
async.nextTick(function () {
|
640
|
-
async.doWhilst(iterator, test, callback);
|
641
|
-
});
|
642
|
-
}
|
643
|
-
else {
|
644
|
-
async.doWhilst(iterator, test, callback);
|
645
|
-
}
|
631
|
+
async.doWhilst(iterator, test, callback);
|
646
632
|
}
|
647
633
|
else {
|
648
634
|
callback();
|
649
635
|
}
|
650
636
|
});
|
651
|
-
sync = false;
|
652
637
|
};
|
653
638
|
|
654
639
|
async.until = function (test, iterator, callback) {
|
655
640
|
if (!test()) {
|
656
|
-
var sync = true;
|
657
641
|
iterator(function (err) {
|
658
642
|
if (err) {
|
659
643
|
return callback(err);
|
660
644
|
}
|
661
|
-
|
662
|
-
async.nextTick(function () {
|
663
|
-
async.until(test, iterator, callback);
|
664
|
-
});
|
665
|
-
}
|
666
|
-
else {
|
667
|
-
async.until(test, iterator, callback);
|
668
|
-
}
|
645
|
+
async.until(test, iterator, callback);
|
669
646
|
});
|
670
|
-
sync = false;
|
671
647
|
}
|
672
648
|
else {
|
673
649
|
callback();
|
@@ -675,26 +651,17 @@
|
|
675
651
|
};
|
676
652
|
|
677
653
|
async.doUntil = function (iterator, test, callback) {
|
678
|
-
var sync = true;
|
679
654
|
iterator(function (err) {
|
680
655
|
if (err) {
|
681
656
|
return callback(err);
|
682
657
|
}
|
683
658
|
if (!test()) {
|
684
|
-
|
685
|
-
async.nextTick(function () {
|
686
|
-
async.doUntil(iterator, test, callback);
|
687
|
-
});
|
688
|
-
}
|
689
|
-
else {
|
690
|
-
async.doUntil(iterator, test, callback);
|
691
|
-
}
|
659
|
+
async.doUntil(iterator, test, callback);
|
692
660
|
}
|
693
661
|
else {
|
694
662
|
callback();
|
695
663
|
}
|
696
664
|
});
|
697
|
-
sync = false;
|
698
665
|
};
|
699
666
|
|
700
667
|
async.queue = function (worker, concurrency) {
|
@@ -720,7 +687,7 @@
|
|
720
687
|
if (q.saturated && q.tasks.length === concurrency) {
|
721
688
|
q.saturated();
|
722
689
|
}
|
723
|
-
async.
|
690
|
+
async.setImmediate(q.process);
|
724
691
|
});
|
725
692
|
}
|
726
693
|
|
@@ -744,7 +711,6 @@
|
|
744
711
|
q.empty();
|
745
712
|
}
|
746
713
|
workers += 1;
|
747
|
-
var sync = true;
|
748
714
|
var next = function () {
|
749
715
|
workers -= 1;
|
750
716
|
if (task.callback) {
|
@@ -755,19 +721,8 @@
|
|
755
721
|
}
|
756
722
|
q.process();
|
757
723
|
};
|
758
|
-
var cb = only_once(
|
759
|
-
var cbArgs = arguments;
|
760
|
-
|
761
|
-
if (sync) {
|
762
|
-
async.nextTick(function () {
|
763
|
-
next.apply(null, cbArgs);
|
764
|
-
});
|
765
|
-
} else {
|
766
|
-
next.apply(null, arguments);
|
767
|
-
}
|
768
|
-
});
|
724
|
+
var cb = only_once(next);
|
769
725
|
worker(task.data, cb);
|
770
|
-
sync = false;
|
771
726
|
}
|
772
727
|
},
|
773
728
|
length: function () {
|
@@ -803,7 +758,7 @@
|
|
803
758
|
cargo.saturated();
|
804
759
|
}
|
805
760
|
});
|
806
|
-
async.
|
761
|
+
async.setImmediate(cargo.process);
|
807
762
|
},
|
808
763
|
process: function process() {
|
809
764
|
if (working) return;
|
@@ -945,24 +900,39 @@
|
|
945
900
|
};
|
946
901
|
};
|
947
902
|
|
948
|
-
|
903
|
+
var _applyEach = function (eachfn, fns /*args...*/) {
|
949
904
|
var go = function () {
|
950
905
|
var that = this;
|
951
906
|
var args = Array.prototype.slice.call(arguments);
|
952
907
|
var callback = args.pop();
|
953
|
-
return
|
908
|
+
return eachfn(fns, function (fn, cb) {
|
954
909
|
fn.apply(that, args.concat([cb]));
|
955
910
|
},
|
956
911
|
callback);
|
957
912
|
};
|
958
|
-
if (arguments.length >
|
959
|
-
var args = Array.prototype.slice.call(arguments,
|
913
|
+
if (arguments.length > 2) {
|
914
|
+
var args = Array.prototype.slice.call(arguments, 2);
|
960
915
|
return go.apply(this, args);
|
961
916
|
}
|
962
917
|
else {
|
963
918
|
return go;
|
964
919
|
}
|
965
920
|
};
|
921
|
+
async.applyEach = doParallel(_applyEach);
|
922
|
+
async.applyEachSeries = doSeries(_applyEach);
|
923
|
+
|
924
|
+
async.forever = function (fn, callback) {
|
925
|
+
function next(err) {
|
926
|
+
if (err) {
|
927
|
+
if (callback) {
|
928
|
+
return callback(err);
|
929
|
+
}
|
930
|
+
throw err;
|
931
|
+
}
|
932
|
+
fn(next);
|
933
|
+
}
|
934
|
+
next();
|
935
|
+
};
|
966
936
|
|
967
937
|
// AMD / RequireJS
|
968
938
|
if (typeof define !== 'undefined' && define.amd) {
|