diff --git a/src/Hail.js b/src/Hail.js new file mode 100644 index 0000000..2c6aecc --- /dev/null +++ b/src/Hail.js @@ -0,0 +1,17 @@ +import Random; + +var greetings = [ + "Gloire à", + "Longue vie à", + "Vive" +]; +var latest = null; + +return { + hail: hail +}; + +function hail(name) { + latest = Random.element(greetings.filter(function(g) {return g != latest})); + return latest + ' ' + name + ' !'; +} diff --git a/src/Main.js b/src/Main.js index dadc5f3..80e2379 100644 --- a/src/Main.js +++ b/src/Main.js @@ -1,19 +1,9 @@ -import Roots; +import hail from Hail; +import Name; var generate = document.getElementById('generate'); var result = document.getElementById('result'); -function random(roots) { - var i = Math.floor(roots.length * Math.random()); - return roots[i]; -} - -function name() { - var prefix = random(Roots.prefixes); - var suffix = random(Roots.suffixes); - return prefix + suffix; -} - generate.addEventListener('click', function() { - result.textContent = "Gloire à " + name() + " !"; + result.textContent = hail(Name.random()); }); diff --git a/src/Roots.js b/src/Name.js similarity index 75% rename from src/Roots.js rename to src/Name.js index 6038c2b..b85cc7f 100644 --- a/src/Roots.js +++ b/src/Name.js @@ -1,3 +1,5 @@ +import Random; + var prefixes = [ "Adal", "Aethel", @@ -51,6 +53,11 @@ var suffixes = [ ]; return { - prefixes: prefixes, - suffixes: suffixes + random: random }; + +function random() { + var prefix = Random.element(prefixes); + var suffix = Random.element(suffixes); + return prefix + suffix; +} diff --git a/src/Random.js b/src/Random.js new file mode 100644 index 0000000..1a9863a --- /dev/null +++ b/src/Random.js @@ -0,0 +1,8 @@ +return { + element: element +}; + +function element(elements) { + var i = Math.floor(elements.length * Math.random()); + return elements[i]; +}