Allow custom format for random values #3

Open
Ghost wants to merge 2 commits from (deleted):master into master
3 changed files with 37 additions and 4 deletions

View File

@ -55,6 +55,9 @@ var i;
for (i = 0; i < 100; i += 1) {
console.log(hri.random());
}
// Use custom pattern of number-noun-adjective
console.log(hri.get('#na'));
```
### bower / browser

View File

@ -23,7 +23,7 @@
return shuffle(numbers);
}
function random() {
function populate() {
if (!adjectives.length) {
adjectives = shuffle(lists.adjectives.slice(0));
}
@ -33,14 +33,40 @@
if (!numbers.length) {
numbers = shuffle(genNumbers());
}
}
function random() {
populate();
return adjectives.pop()
+ '-' + animals.pop()
+ '-' + numbers.pop()
;
}
exports.humanReadableIds = { random: random };
// Accepts a format as a stirng of 'a' for adjective, 'n' for noun, and '#' for number
function get(format) {
populate();
let hri = [];
for (let item of format) {
switch (item) {
case 'a':
hri.push(adjectives.pop());
break;
case 'n':
hri.push(animals.pop());
break;
case '#':
hri.push(numbers.pop());
break;
default:
throw 'Unexpected value ' + item + '. Expected a,n,#';
}
}
return hri.join('-');
}
exports.humanReadableIds = {random: random, get: get};
exports.hri = exports.humanReadableIds;
}('undefined' !== typeof exports && exports || new Function('return this')()));

View File

@ -9,4 +9,8 @@
for (i = 0; i < 100; i += 1) {
console.log(hri.random());
}
for (i = 0; i < 10; i += 1) {
console.log(hri.get('#na'));
}
}('undefined' !== typeof exports && exports || new Function('return this')()));