Skip to content

Commit af53ee3

Browse files
committed
Don't be overly clever in the implementation
1 parent 0555354 commit af53ee3

File tree

3 files changed

+16
-25
lines changed

3 files changed

+16
-25
lines changed

workspaces/adventure-pack/goodies/typescript/String.prototype.caesar/index.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,8 @@ declare global {
1010
}
1111

1212
String.prototype.caesar = function (this: String, delta: number = 1): string {
13-
return this.replaceAll(
14-
/([a-z])|[A-Z]/g,
15-
(letter: string, lower: string | undefined) => {
16-
const offset = (lower == null ? "A" : "a").ord();
17-
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
18-
},
19-
);
13+
return this.replaceAll(/[a-z]/gi, (letter: string) => {
14+
const offset = (letter >= "A" && letter <= "Z" ? "A" : "a").ord();
15+
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
16+
});
2017
};

workspaces/adventure-pack/src/app/__tests__/__snapshots__/equip-test.ts.snap

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2408,8 +2408,8 @@ String.prototype.ord = function () {
24082408
};
24092409

24102410
String.prototype.caesar = function (delta = 1) {
2411-
return this.replaceAll(/([a-z])|[A-Z]/g, (letter, lower) => {
2412-
const offset = (lower == null ? "A" : "a").ord();
2411+
return this.replaceAll(/[a-z]/gi, (letter) => {
2412+
const offset = (letter >= "A" && letter <= "Z" ? "A" : "a").ord();
24132413
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
24142414
});
24152415
};
@@ -5043,13 +5043,10 @@ String.prototype.ord = function (this: String): number {
50435043
};
50445044

50455045
String.prototype.caesar = function (this: String, delta: number = 1): string {
5046-
return this.replaceAll(
5047-
/([a-z])|[A-Z]/g,
5048-
(letter: string, lower: string | undefined) => {
5049-
const offset = (lower == null ? "A" : "a").ord();
5050-
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
5051-
},
5052-
);
5046+
return this.replaceAll(/[a-z]/gi, (letter: string) => {
5047+
const offset = (letter >= "A" && letter <= "Z" ? "A" : "a").ord();
5048+
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
5049+
});
50535050
};
50545051

50555052
/////////////////////////// END ADVENTURE PACK CODE ////////////////////////////"

workspaces/adventure-pack/src/app/__tests__/__snapshots__/render-test.ts.snap

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1310,8 +1310,8 @@ import "Number.prototype.positiveMod";
13101310
import "String.prototype.ord";
13111311
13121312
String.prototype.caesar = function (delta = 1) {
1313-
return this.replaceAll(/([a-z])|[A-Z]/g, (letter, lower) => {
1314-
const offset = (lower == null ? "A" : "a").ord();
1313+
return this.replaceAll(/[a-z]/gi, (letter) => {
1314+
const offset = (letter >= "A" && letter <= "Z" ? "A" : "a").ord();
13151315
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
13161316
});
13171317
};"
@@ -2869,13 +2869,10 @@ declare global {
28692869
}
28702870
28712871
String.prototype.caesar = function (this: String, delta: number = 1): string {
2872-
return this.replaceAll(
2873-
/([a-z])|[A-Z]/g,
2874-
(letter: string, lower: string | undefined) => {
2875-
const offset = (lower == null ? "A" : "a").ord();
2876-
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
2877-
},
2878-
);
2872+
return this.replaceAll(/[a-z]/gi, (letter: string) => {
2873+
const offset = (letter >= "A" && letter <= "Z" ? "A" : "a").ord();
2874+
return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
2875+
});
28792876
};"
28802877
`;
28812878

0 commit comments

Comments
 (0)