From 69a981f3532d86313e5b5a4b37ca1d64659a0caa Mon Sep 17 00:00:00 2001 From: Nathanael Esayeas Date: Sat, 10 Feb 2024 13:54:53 -0600 Subject: [PATCH] Update CaseConverter.php Signed-off-by: Nathanael Esayeas --- src/CaseConverter.php | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/CaseConverter.php b/src/CaseConverter.php index 9c68db9..d6a907f 100644 --- a/src/CaseConverter.php +++ b/src/CaseConverter.php @@ -105,32 +105,27 @@ public function upperCase(string $string): string private function glueDash(array $words, Closure $converter): string { - /** @var list $words */ - return implode('-', array_map($converter, $words)); + return implode('-', $this->map($converter, $words)); } private function glueDot(array $words, Closure $converter): string { - /** @var list $words */ - return implode('.', array_map($converter, $words)); + return implode('.', $this->map($converter, $words)); } private function glueSpace(array $words, Closure $converter): string { - /** @var list $words */ - return implode(' ', array_map($converter, $words)); + return implode(' ', $this->map($converter, $words)); } private function glueUnderscore(array $words, Closure $converter): string { - /** @var list $words */ - return implode('_', array_map($converter, $words)); + return implode('_', $this->map($converter, $words)); } private function glueUppercase(array $words, Closure $converter): string { - /** @var list $words */ - return implode('', array_map($converter, $words)); + return implode('', $this->map($converter, $words)); } private function isUppercaseWord(string $string): bool @@ -138,6 +133,20 @@ private function isUppercaseWord(string $string): bool return preg_match('#^\p{Lu}+$#u', $string) === 1; } + /** + * @return list + */ + private function map(Closure $converter, array $words): array + { + /** + * @var list $words + * @var Closure(string):string $converter + * + * @return list + */ + return array_map($converter, $words); + } + private function split(string $string): array { if (str_contains($string, '_')) {