Allow custom format for random values #3
|
@ -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
|
||||
|
|
30
index.js
30
index.js
|
@ -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')()));
|
||||
|
|
|
@ -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')()));
|
||||
|
|
Loading…
Reference in New Issue