Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / globule / node_modules / lodash / _createOver.js
1 var apply = require('./_apply'),
2     arrayMap = require('./_arrayMap'),
3     baseIteratee = require('./_baseIteratee'),
4     baseRest = require('./_baseRest'),
5     baseUnary = require('./_baseUnary'),
6     flatRest = require('./_flatRest');
7
8 /**
9  * Creates a function like `_.over`.
10  *
11  * @private
12  * @param {Function} arrayFunc The function to iterate over iteratees.
13  * @returns {Function} Returns the new over function.
14  */
15 function createOver(arrayFunc) {
16   return flatRest(function(iteratees) {
17     iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
18     return baseRest(function(args) {
19       var thisArg = this;
20       return arrayFunc(iteratees, function(iteratee) {
21         return apply(iteratee, thisArg, args);
22       });
23     });
24   });
25 }
26
27 module.exports = createOver;