Compare commits
3 Commits
7e769027b1
...
5b723e8e51
Author | SHA1 | Date |
---|---|---|
|
5b723e8e51 | |
|
05b866c9ad | |
|
2d06c0b493 |
|
@ -57,6 +57,9 @@ const options = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Invalid input */
|
||||||
|
metamorpov.translate({}, options.firstPerson);
|
||||||
|
|
||||||
/* vrb, vrn */
|
/* vrb, vrn */
|
||||||
assert.equal(metamorpov.translate("vrb/be/", options.firstPerson), "was"); // I was
|
assert.equal(metamorpov.translate("vrb/be/", options.firstPerson), "was"); // I was
|
||||||
assert.equal(metamorpov.translate("vrb/be/", options.secondPerson), "were"); // You were
|
assert.equal(metamorpov.translate("vrb/be/", options.secondPerson), "were"); // You were
|
||||||
|
@ -208,5 +211,3 @@ assert.equal(metamorpov.translate("a/an pear", options.firstPerson), "a pear");
|
||||||
assert.equal(metamorpov.translate("a/an apple", options.firstPerson), "an apple"); // Starts with a vowel sound
|
assert.equal(metamorpov.translate("a/an apple", options.firstPerson), "an apple"); // Starts with a vowel sound
|
||||||
assert.equal(metamorpov.translate("a/an hour", options.firstPerson), "an hour"); // Starts with a vowel sound despite consonant letter
|
assert.equal(metamorpov.translate("a/an hour", options.firstPerson), "an hour"); // Starts with a vowel sound despite consonant letter
|
||||||
assert.equal(metamorpov.translate("a/an 1800s-era", options.firstPerson), "an 1800s-era"); // "Eighteen-hundreds" starts with a vowel sound
|
assert.equal(metamorpov.translate("a/an 1800s-era", options.firstPerson), "an 1800s-era"); // "Eighteen-hundreds" starts with a vowel sound
|
||||||
|
|
||||||
console.log("Test succeeded");
|
|
||||||
|
|
|
@ -11,14 +11,20 @@ exports.translate = function(input, options) {
|
||||||
options: options,
|
options: options,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(input) == "object" && input instanceof Node) {
|
try {
|
||||||
request.loop = loopNode;
|
if (typeof(input) == "object" && input instanceof Node) {
|
||||||
|
request.loop = loopNode;
|
||||||
|
}
|
||||||
|
else if (typeof(input) == "string") {
|
||||||
|
request.loop = loopString;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.error("Input of type " + typeof(input) + " is unsupported");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (typeof(input) == "string") {
|
catch {
|
||||||
request.loop = loopString;
|
console.error("Translation of Node objects is unsupported outside of a browser context");
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.error("Invalid input type");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,15 +77,28 @@ function loopNode(request, params, method) {
|
||||||
child = node.firstChild;
|
child = node.firstChild;
|
||||||
while (child) {
|
while (child) {
|
||||||
next = child.nextSibling;
|
next = child.nextSibling;
|
||||||
loopNode(node, params, method);
|
loopNode({
|
||||||
|
input: child,
|
||||||
|
options: request.options
|
||||||
|
}, params, method);
|
||||||
child = next;
|
child = next;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3: /* TEXT_NODE */
|
case 3: /* TEXT_NODE */
|
||||||
loopString(node.nodeValue, params, method);
|
loopNodeValue({
|
||||||
|
input: node,
|
||||||
|
options: request.options
|
||||||
|
}, params, method);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Iterator for strings belonging to HTML Node elements */
|
||||||
|
function loopNodeValue(request, params, method) {
|
||||||
|
if (request.input.nodeValue.match(params.regexp) == null) { return; }
|
||||||
|
request.input.nodeValue = method(request.input.nodeValue, params);
|
||||||
|
loopNodeValue(request, params, method);
|
||||||
|
}
|
||||||
|
|
||||||
/* Iterator for string elements */
|
/* Iterator for string elements */
|
||||||
function loopString(request, params, method) {
|
function loopString(request, params, method) {
|
||||||
if (request.input.match(params.regexp) == null) { return; }
|
if (request.input.match(params.regexp) == null) { return; }
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
},
|
},
|
||||||
"author": "Jean Viscogliosi-Pate",
|
"author": "Jean Viscogliosi-Pate",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"devDependencies": {
|
"dependencies": {
|
||||||
"english-verbs-gerunds": "^3.4.0",
|
"english-verbs-gerunds": "^3.4.0",
|
||||||
"english-verbs-helper": "^3.4.0",
|
"english-verbs-helper": "^3.4.0",
|
||||||
"english-verbs-irregular": "^3.4.0",
|
"english-verbs-irregular": "^3.4.0",
|
||||||
|
|
Loading…
Reference in New Issue