| var arrayReduce = require('./_arrayReduce'), |
| deburr = require('./deburr'), |
| words = require('./words'); |
| |
| /** Used to compose unicode capture groups. */ |
| var rsApos = "['\u2019]"; |
| |
| /** Used to match apostrophes. */ |
| var reApos = RegExp(rsApos, 'g'); |
| |
| /** |
| * Creates a function like `_.camelCase`. |
| * |
| * @private |
| * @param {Function} callback The function to combine each word. |
| * @returns {Function} Returns the new compounder function. |
| */ |
| function createCompounder(callback) { |
| return function(string) { |
| return arrayReduce(words(deburr(string).replace(reApos, '')), callback, ''); |
| }; |
| } |
| |
| module.exports = createCompounder; |