Skip to content

Commit

Permalink
Merge pull request #1981 from bartblaze/master
Browse files Browse the repository at this point in the history
  • Loading branch information
a3957273 authored Feb 21, 2025
2 parents 1b8c229 + 7babef6 commit d3357d2
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 5 deletions.
13 changes: 8 additions & 5 deletions src/core/operations/ConvertLeetSpeak.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class ConvertLeetSpeak extends Operation {

this.name = "Convert Leet Speak";
this.module = "Default";
this.description = "Converts to and from Leet Speak";
this.description = "Converts to and from Leet Speak.";
this.infoURL = "https://wikipedia.org/wiki/Leet";
this.inputType = "string";
this.outputType = "string";
Expand All @@ -39,13 +39,16 @@ class ConvertLeetSpeak extends Operation {
*/
run(input, args) {
const direction = args[0];

if (direction === "To Leet Speak") {
return input.replace(/[abcdefghijklmnopqrstuvwxyz]/gi, char => {
return toLeetMap[char.toLowerCase()] || char;
return input.replace(/[a-z]/gi, char => {
const leetChar = toLeetMap[char.toLowerCase()] || char;
return char === char.toUpperCase() ? leetChar.toUpperCase() : leetChar;
});
} else if (direction === "From Leet Speak") {
return input.replace(/[48cd3f6h1jklmn0pqr57uvwxyz]/g, char => {
return fromLeetMap[char] || char;
return input.replace(/[48cd3f6h1jklmn0pqr57uvwxyz]/gi, char => {
const normalChar = fromLeetMap[char] || char;
return normalChar;
});
}
}
Expand Down
22 changes: 22 additions & 0 deletions tests/operations/tests/ConvertLeetSpeak.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,28 @@ TestRegister.addTests([
args: ["From Leet Speak"]
}
]
},
{
name: "Convert to Leet Speak: basic text, keep case",
input: "HELLO",
expectedOutput: "H3LL0",
recipeConfig: [
{
op: "Convert Leet Speak",
args: ["To Leet Speak"]
}
]
},
{
name: "Convert from Leet Speak: basic leet, keep case",
input: "H3LL0",
expectedOutput: "HeLLo",
recipeConfig: [
{
op: "Convert Leet Speak",
args: ["From Leet Speak"]
}
]
}
]);

0 comments on commit d3357d2

Please sign in to comment.