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;
|