async-rails 0.2.10 → 0.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 +59 -31
 - 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: 70969f55042fe2f0ebd73b62429c669b1aba2cba
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: d49d49c31d1945008a754c59a96edcc4d68d1ee0
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 7bc3d32c07997aca0e9748329f38fba1fddc25e4d6755bd9e8a3d38b7c77a6d24bd4710ecaeec62c22737e5c2b781a6940b5157d6ec24d90d366fde64f951975
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: f1d7b4560cad1e30f5d9ec3511d4dd5cd9adbe2b320f446beab11f08ae71ca862624fc4972020cb8bb15508cdbf3a5a749fe185376a822f4c01cba66f506ebf3
         
     | 
    
        data/lib/async-rails/version.rb
    CHANGED
    
    
| 
         @@ -1,3 +1,4 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            /*jshint onevar: false, indent:4 */
         
     | 
| 
       1 
2 
     | 
    
         
             
            /*global setImmediate: false, setTimeout: false, console: false */
         
     | 
| 
       2 
3 
     | 
    
         
             
            (function () {
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
         @@ -27,6 +28,10 @@ 
     | 
|
| 
       27 
28 
     | 
    
         | 
| 
       28 
29 
     | 
    
         
             
                //// cross-browser compatiblity functions ////
         
     | 
| 
       29 
30 
     | 
    
         | 
| 
      
 31 
     | 
    
         
            +
                var _isArray = Array.isArray || function (obj) {
         
     | 
| 
      
 32 
     | 
    
         
            +
                    return toString.call(obj) === '[object Array]';
         
     | 
| 
      
 33 
     | 
    
         
            +
                };
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       30 
35 
     | 
    
         
             
                var _each = function (arr, iterator) {
         
     | 
| 
       31 
36 
     | 
    
         
             
                    if (arr.forEach) {
         
     | 
| 
       32 
37 
     | 
    
         
             
                        return arr.forEach(iterator);
         
     | 
| 
         @@ -108,19 +113,20 @@ 
     | 
|
| 
       108 
113 
     | 
    
         
             
                    }
         
     | 
| 
       109 
114 
     | 
    
         
             
                    var completed = 0;
         
     | 
| 
       110 
115 
     | 
    
         
             
                    _each(arr, function (x) {
         
     | 
| 
       111 
     | 
    
         
            -
                        iterator(x, only_once( 
     | 
| 
       112 
     | 
    
         
            -
                            if (err) {
         
     | 
| 
       113 
     | 
    
         
            -
                                callback(err);
         
     | 
| 
       114 
     | 
    
         
            -
                                callback = function () {};
         
     | 
| 
       115 
     | 
    
         
            -
                            }
         
     | 
| 
       116 
     | 
    
         
            -
                            else {
         
     | 
| 
       117 
     | 
    
         
            -
                                completed += 1;
         
     | 
| 
       118 
     | 
    
         
            -
                                if (completed >= arr.length) {
         
     | 
| 
       119 
     | 
    
         
            -
                                    callback(null);
         
     | 
| 
       120 
     | 
    
         
            -
                                }
         
     | 
| 
       121 
     | 
    
         
            -
                            }
         
     | 
| 
       122 
     | 
    
         
            -
                        }));
         
     | 
| 
      
 116 
     | 
    
         
            +
                        iterator(x, only_once(done) );
         
     | 
| 
       123 
117 
     | 
    
         
             
                    });
         
     | 
| 
      
 118 
     | 
    
         
            +
                    function done(err) {
         
     | 
| 
      
 119 
     | 
    
         
            +
                      if (err) {
         
     | 
| 
      
 120 
     | 
    
         
            +
                          callback(err);
         
     | 
| 
      
 121 
     | 
    
         
            +
                          callback = function () {};
         
     | 
| 
      
 122 
     | 
    
         
            +
                      }
         
     | 
| 
      
 123 
     | 
    
         
            +
                      else {
         
     | 
| 
      
 124 
     | 
    
         
            +
                          completed += 1;
         
     | 
| 
      
 125 
     | 
    
         
            +
                          if (completed >= arr.length) {
         
     | 
| 
      
 126 
     | 
    
         
            +
                              callback(null);
         
     | 
| 
      
 127 
     | 
    
         
            +
                          }
         
     | 
| 
      
 128 
     | 
    
         
            +
                      }
         
     | 
| 
      
 129 
     | 
    
         
            +
                    }
         
     | 
| 
       124 
130 
     | 
    
         
             
                };
         
     | 
| 
       125 
131 
     | 
    
         
             
                async.forEach = async.each;
         
     | 
| 
       126 
132 
     | 
    
         | 
| 
         @@ -422,8 +428,11 @@ 
     | 
|
| 
       422 
428 
     | 
    
         | 
| 
       423 
429 
     | 
    
         
             
                    addListener(function () {
         
     | 
| 
       424 
430 
     | 
    
         
             
                        if (_keys(results).length === keys.length) {
         
     | 
| 
       425 
     | 
    
         
            -
                            callback 
     | 
| 
      
 431 
     | 
    
         
            +
                            var theCallback = callback;
         
     | 
| 
      
 432 
     | 
    
         
            +
                            // prevent final callback from calling itself if it errors
         
     | 
| 
       426 
433 
     | 
    
         
             
                            callback = function () {};
         
     | 
| 
      
 434 
     | 
    
         
            +
             
     | 
| 
      
 435 
     | 
    
         
            +
                            theCallback(null, results);
         
     | 
| 
       427 
436 
     | 
    
         
             
                        }
         
     | 
| 
       428 
437 
     | 
    
         
             
                    });
         
     | 
| 
       429 
438 
     | 
    
         | 
| 
         @@ -472,7 +481,7 @@ 
     | 
|
| 
       472 
481 
     | 
    
         | 
| 
       473 
482 
     | 
    
         
             
                async.waterfall = function (tasks, callback) {
         
     | 
| 
       474 
483 
     | 
    
         
             
                    callback = callback || function () {};
         
     | 
| 
       475 
     | 
    
         
            -
                    if (tasks 
     | 
| 
      
 484 
     | 
    
         
            +
                    if (!_isArray(tasks)) {
         
     | 
| 
       476 
485 
     | 
    
         
             
                      var err = new Error('First argument to waterfall must be an array of functions');
         
     | 
| 
       477 
486 
     | 
    
         
             
                      return callback(err);
         
     | 
| 
       478 
487 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -505,7 +514,7 @@ 
     | 
|
| 
       505 
514 
     | 
    
         | 
| 
       506 
515 
     | 
    
         
             
                var _parallel = function(eachfn, tasks, callback) {
         
     | 
| 
       507 
516 
     | 
    
         
             
                    callback = callback || function () {};
         
     | 
| 
       508 
     | 
    
         
            -
                    if (tasks 
     | 
| 
      
 517 
     | 
    
         
            +
                    if (_isArray(tasks)) {
         
     | 
| 
       509 
518 
     | 
    
         
             
                        eachfn.map(tasks, function (fn, callback) {
         
     | 
| 
       510 
519 
     | 
    
         
             
                            if (fn) {
         
     | 
| 
       511 
520 
     | 
    
         
             
                                fn(function (err) {
         
     | 
| 
         @@ -545,7 +554,7 @@ 
     | 
|
| 
       545 
554 
     | 
    
         | 
| 
       546 
555 
     | 
    
         
             
                async.series = function (tasks, callback) {
         
     | 
| 
       547 
556 
     | 
    
         
             
                    callback = callback || function () {};
         
     | 
| 
       548 
     | 
    
         
            -
                    if (tasks 
     | 
| 
      
 557 
     | 
    
         
            +
                    if (_isArray(tasks)) {
         
     | 
| 
       549 
558 
     | 
    
         
             
                        async.mapSeries(tasks, function (fn, callback) {
         
     | 
| 
       550 
559 
     | 
    
         
             
                            if (fn) {
         
     | 
| 
       551 
560 
     | 
    
         
             
                                fn(function (err) {
         
     | 
| 
         @@ -633,7 +642,8 @@ 
     | 
|
| 
       633 
642 
     | 
    
         
             
                        if (err) {
         
     | 
| 
       634 
643 
     | 
    
         
             
                            return callback(err);
         
     | 
| 
       635 
644 
     | 
    
         
             
                        }
         
     | 
| 
       636 
     | 
    
         
            -
                         
     | 
| 
      
 645 
     | 
    
         
            +
                        var args = Array.prototype.slice.call(arguments, 1);
         
     | 
| 
      
 646 
     | 
    
         
            +
                        if (test.apply(null, args)) {
         
     | 
| 
       637 
647 
     | 
    
         
             
                            async.doWhilst(iterator, test, callback);
         
     | 
| 
       638 
648 
     | 
    
         
             
                        }
         
     | 
| 
       639 
649 
     | 
    
         
             
                        else {
         
     | 
| 
         @@ -661,7 +671,8 @@ 
     | 
|
| 
       661 
671 
     | 
    
         
             
                        if (err) {
         
     | 
| 
       662 
672 
     | 
    
         
             
                            return callback(err);
         
     | 
| 
       663 
673 
     | 
    
         
             
                        }
         
     | 
| 
       664 
     | 
    
         
            -
                         
     | 
| 
      
 674 
     | 
    
         
            +
                        var args = Array.prototype.slice.call(arguments, 1);
         
     | 
| 
      
 675 
     | 
    
         
            +
                        if (!test.apply(null, args)) {
         
     | 
| 
       665 
676 
     | 
    
         
             
                            async.doUntil(iterator, test, callback);
         
     | 
| 
       666 
677 
     | 
    
         
             
                        }
         
     | 
| 
       667 
678 
     | 
    
         
             
                        else {
         
     | 
| 
         @@ -675,9 +686,17 @@ 
     | 
|
| 
       675 
686 
     | 
    
         
             
                        concurrency = 1;
         
     | 
| 
       676 
687 
     | 
    
         
             
                    }
         
     | 
| 
       677 
688 
     | 
    
         
             
                    function _insert(q, data, pos, callback) {
         
     | 
| 
       678 
     | 
    
         
            -
                      if(data 
     | 
| 
      
 689 
     | 
    
         
            +
                      if (!_isArray(data)) {
         
     | 
| 
       679 
690 
     | 
    
         
             
                          data = [data];
         
     | 
| 
       680 
691 
     | 
    
         
             
                      }
         
     | 
| 
      
 692 
     | 
    
         
            +
                      if(data.length == 0) {
         
     | 
| 
      
 693 
     | 
    
         
            +
                         // call drain immediately if there are no tasks
         
     | 
| 
      
 694 
     | 
    
         
            +
                         return async.setImmediate(function() {
         
     | 
| 
      
 695 
     | 
    
         
            +
                             if (q.drain) {
         
     | 
| 
      
 696 
     | 
    
         
            +
                                 q.drain();
         
     | 
| 
      
 697 
     | 
    
         
            +
                             }
         
     | 
| 
      
 698 
     | 
    
         
            +
                         });
         
     | 
| 
      
 699 
     | 
    
         
            +
                      }
         
     | 
| 
       681 
700 
     | 
    
         
             
                      _each(data, function(task) {
         
     | 
| 
       682 
701 
     | 
    
         
             
                          var item = {
         
     | 
| 
       683 
702 
     | 
    
         
             
                              data: task,
         
     | 
| 
         @@ -690,7 +709,7 @@ 
     | 
|
| 
       690 
709 
     | 
    
         
             
                            q.tasks.push(item);
         
     | 
| 
       691 
710 
     | 
    
         
             
                          }
         
     | 
| 
       692 
711 
     | 
    
         | 
| 
       693 
     | 
    
         
            -
                          if (q.saturated && q.tasks.length === concurrency) {
         
     | 
| 
      
 712 
     | 
    
         
            +
                          if (q.saturated && q.tasks.length === q.concurrency) {
         
     | 
| 
       694 
713 
     | 
    
         
             
                              q.saturated();
         
     | 
| 
       695 
714 
     | 
    
         
             
                          }
         
     | 
| 
       696 
715 
     | 
    
         
             
                          async.setImmediate(q.process);
         
     | 
| 
         @@ -751,8 +770,9 @@ 
     | 
|
| 
       751 
770 
     | 
    
         
             
                        saturated: null,
         
     | 
| 
       752 
771 
     | 
    
         
             
                        empty: null,
         
     | 
| 
       753 
772 
     | 
    
         
             
                        drain: null,
         
     | 
| 
      
 773 
     | 
    
         
            +
                        drained: true,
         
     | 
| 
       754 
774 
     | 
    
         
             
                        push: function (data, callback) {
         
     | 
| 
       755 
     | 
    
         
            -
                            if(data 
     | 
| 
      
 775 
     | 
    
         
            +
                            if (!_isArray(data)) {
         
     | 
| 
       756 
776 
     | 
    
         
             
                                data = [data];
         
     | 
| 
       757 
777 
     | 
    
         
             
                            }
         
     | 
| 
       758 
778 
     | 
    
         
             
                            _each(data, function(task) {
         
     | 
| 
         @@ -760,6 +780,7 @@ 
     | 
|
| 
       760 
780 
     | 
    
         
             
                                    data: task,
         
     | 
| 
       761 
781 
     | 
    
         
             
                                    callback: typeof callback === 'function' ? callback : null
         
     | 
| 
       762 
782 
     | 
    
         
             
                                });
         
     | 
| 
      
 783 
     | 
    
         
            +
                                cargo.drained = false;
         
     | 
| 
       763 
784 
     | 
    
         
             
                                if (cargo.saturated && tasks.length === payload) {
         
     | 
| 
       764 
785 
     | 
    
         
             
                                    cargo.saturated();
         
     | 
| 
       765 
786 
     | 
    
         
             
                                }
         
     | 
| 
         @@ -769,13 +790,14 @@ 
     | 
|
| 
       769 
790 
     | 
    
         
             
                        process: function process() {
         
     | 
| 
       770 
791 
     | 
    
         
             
                            if (working) return;
         
     | 
| 
       771 
792 
     | 
    
         
             
                            if (tasks.length === 0) {
         
     | 
| 
       772 
     | 
    
         
            -
                                if(cargo.drain) cargo.drain();
         
     | 
| 
      
 793 
     | 
    
         
            +
                                if(cargo.drain && !cargo.drained) cargo.drain();
         
     | 
| 
      
 794 
     | 
    
         
            +
                                cargo.drained = true;
         
     | 
| 
       773 
795 
     | 
    
         
             
                                return;
         
     | 
| 
       774 
796 
     | 
    
         
             
                            }
         
     | 
| 
       775 
797 
     | 
    
         | 
| 
       776 
798 
     | 
    
         
             
                            var ts = typeof payload === 'number'
         
     | 
| 
       777 
799 
     | 
    
         
             
                                        ? tasks.splice(0, payload)
         
     | 
| 
       778 
     | 
    
         
            -
                                        : tasks.splice(0);
         
     | 
| 
      
 800 
     | 
    
         
            +
                                        : tasks.splice(0, tasks.length);
         
     | 
| 
       779 
801 
     | 
    
         | 
| 
       780 
802 
     | 
    
         
             
                            var ds = _map(ts, function (task) {
         
     | 
| 
       781 
803 
     | 
    
         
             
                                return task.data;
         
     | 
| 
         @@ -843,7 +865,9 @@ 
     | 
|
| 
       843 
865 
     | 
    
         
             
                        var callback = args.pop();
         
     | 
| 
       844 
866 
     | 
    
         
             
                        var key = hasher.apply(null, args);
         
     | 
| 
       845 
867 
     | 
    
         
             
                        if (key in memo) {
         
     | 
| 
       846 
     | 
    
         
            -
                             
     | 
| 
      
 868 
     | 
    
         
            +
                            async.nextTick(function () {
         
     | 
| 
      
 869 
     | 
    
         
            +
                                callback.apply(null, memo[key]);
         
     | 
| 
      
 870 
     | 
    
         
            +
                            });
         
     | 
| 
       847 
871 
     | 
    
         
             
                        }
         
     | 
| 
       848 
872 
     | 
    
         
             
                        else if (key in queues) {
         
     | 
| 
       849 
873 
     | 
    
         
             
                            queues[key].push(callback);
         
     | 
| 
         @@ -887,8 +911,8 @@ 
     | 
|
| 
       887 
911 
     | 
    
         
             
                    return async.mapSeries(counter, iterator, callback);
         
     | 
| 
       888 
912 
     | 
    
         
             
                };
         
     | 
| 
       889 
913 
     | 
    
         | 
| 
       890 
     | 
    
         
            -
                async. 
     | 
| 
       891 
     | 
    
         
            -
                    var fns =  
     | 
| 
      
 914 
     | 
    
         
            +
                async.seq = function (/* functions... */) {
         
     | 
| 
      
 915 
     | 
    
         
            +
                    var fns = arguments;
         
     | 
| 
       892 
916 
     | 
    
         
             
                    return function () {
         
     | 
| 
       893 
917 
     | 
    
         
             
                        var that = this;
         
     | 
| 
       894 
918 
     | 
    
         
             
                        var args = Array.prototype.slice.call(arguments);
         
     | 
| 
         @@ -906,6 +930,10 @@ 
     | 
|
| 
       906 
930 
     | 
    
         
             
                    };
         
     | 
| 
       907 
931 
     | 
    
         
             
                };
         
     | 
| 
       908 
932 
     | 
    
         | 
| 
      
 933 
     | 
    
         
            +
                async.compose = function (/* functions... */) {
         
     | 
| 
      
 934 
     | 
    
         
            +
                  return async.seq.apply(null, Array.prototype.reverse.call(arguments));
         
     | 
| 
      
 935 
     | 
    
         
            +
                };
         
     | 
| 
      
 936 
     | 
    
         
            +
             
     | 
| 
       909 
937 
     | 
    
         
             
                var _applyEach = function (eachfn, fns /*args...*/) {
         
     | 
| 
       910 
938 
     | 
    
         
             
                    var go = function () {
         
     | 
| 
       911 
939 
     | 
    
         
             
                        var that = this;
         
     | 
| 
         @@ -940,16 +968,16 @@ 
     | 
|
| 
       940 
968 
     | 
    
         
             
                    next();
         
     | 
| 
       941 
969 
     | 
    
         
             
                };
         
     | 
| 
       942 
970 
     | 
    
         | 
| 
      
 971 
     | 
    
         
            +
                // Node.js
         
     | 
| 
      
 972 
     | 
    
         
            +
                if (typeof module !== 'undefined' && module.exports) {
         
     | 
| 
      
 973 
     | 
    
         
            +
                    module.exports = async;
         
     | 
| 
      
 974 
     | 
    
         
            +
                }
         
     | 
| 
       943 
975 
     | 
    
         
             
                // AMD / RequireJS
         
     | 
| 
       944 
     | 
    
         
            -
                if (typeof define !== 'undefined' && define.amd) {
         
     | 
| 
      
 976 
     | 
    
         
            +
                else if (typeof define !== 'undefined' && define.amd) {
         
     | 
| 
       945 
977 
     | 
    
         
             
                    define([], function () {
         
     | 
| 
       946 
978 
     | 
    
         
             
                        return async;
         
     | 
| 
       947 
979 
     | 
    
         
             
                    });
         
     | 
| 
       948 
980 
     | 
    
         
             
                }
         
     | 
| 
       949 
     | 
    
         
            -
                // Node.js
         
     | 
| 
       950 
     | 
    
         
            -
                else if (typeof module !== 'undefined' && module.exports) {
         
     | 
| 
       951 
     | 
    
         
            -
                    module.exports = async;
         
     | 
| 
       952 
     | 
    
         
            -
                }
         
     | 
| 
       953 
981 
     | 
    
         
             
                // included directly via <script> tag
         
     | 
| 
       954 
982 
     | 
    
         
             
                else {
         
     | 
| 
       955 
983 
     | 
    
         
             
                    root.async = async;
         
     |