time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_createCompounder.js (635B)


      1 var arrayReduce = require('./_arrayReduce'),
      2     deburr = require('./deburr'),
      3     words = require('./words');
      4 
      5 /** Used to compose unicode capture groups. */
      6 var rsApos = "['\u2019]";
      7 
      8 /** Used to match apostrophes. */
      9 var reApos = RegExp(rsApos, 'g');
     10 
     11 /**
     12  * Creates a function like `_.camelCase`.
     13  *
     14  * @private
     15  * @param {Function} callback The function to combine each word.
     16  * @returns {Function} Returns the new compounder function.
     17  */
     18 function createCompounder(callback) {
     19   return function(string) {
     20     return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');
     21   };
     22 }
     23 
     24 module.exports = createCompounder;