diff --git a/src/EnumNames.php b/src/EnumNames.php index 46a72c2..8e0e270 100644 --- a/src/EnumNames.php +++ b/src/EnumNames.php @@ -1,4 +1,5 @@ map(fn($case) => $case->name); + return collect(self::cases())->pluck('name'); } /** diff --git a/src/EnumOptions.php b/src/EnumOptions.php index 4b3576e..f7fe9d2 100644 --- a/src/EnumOptions.php +++ b/src/EnumOptions.php @@ -1,4 +1,5 @@ self::values()->count()) { - throw new InvalidArgumentException('Count of random values is greater than count of enum values'); - } - - return self::values()->shuffle()->take($count); + return self::values()->random($count); } /** diff --git a/src/EnumStaticCalls.php b/src/EnumStaticCalls.php index f379bd6..533926d 100644 --- a/src/EnumStaticCalls.php +++ b/src/EnumStaticCalls.php @@ -1,4 +1,5 @@ name === $name) { - return $case->value; - } - } - - return null; + return array_column(self::cases(), 'value', 'name')[$name] ?? null; } } diff --git a/tests/EnumNamesTest.php b/tests/EnumNamesTest.php index 1c5d00f..d69490f 100644 --- a/tests/EnumNamesTest.php +++ b/tests/EnumNamesTest.php @@ -1,4 +1,5 @@