Convert RegexPatterns constants to enum cases

This commit is contained in:
netkas 2024-09-13 13:38:31 -04:00
parent 7e5cdf4d64
commit e98b949b7d
7 changed files with 24 additions and 23 deletions

View file

@ -13,6 +13,7 @@ This update introduces a refactored code-base, code quality improvements, and be
- Convert Versions constants to enum cases - Convert Versions constants to enum cases
- Update Scopes to enum and adjust scope checks - Update Scopes to enum and adjust scope checks
- Convert Runners class to enum with string cases - Convert Runners class to enum with string cases
- Convert RegexPatterns constants to enum cases
### Removed ### Removed
- Removed EncoderType enum file, unused. - Removed EncoderType enum file, unused.

View file

@ -199,7 +199,7 @@
$authentication_entry = $entry->getPassword(); $authentication_entry = $entry->getPassword();
} }
if(preg_match(RegexPatterns::REMOTE_PACKAGE, $package) === 1) if(preg_match(RegexPatterns::REMOTE_PACKAGE->value, $package) === 1)
{ {
$package_input = RemotePackageInput::fromString($package); $package_input = RemotePackageInput::fromString($package);

View file

@ -26,27 +26,27 @@
* @author Zi Xing Narrakas * @author Zi Xing Narrakas
* @copyright Copyright (C) 2022-2023. Nosial - All Rights Reserved. * @copyright Copyright (C) 2022-2023. Nosial - All Rights Reserved.
*/ */
final class RegexPatterns enum RegexPatterns : string
{ {
public const UUID = '{^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$}Di'; case UUID = '{^[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12}$}Di';
public const PACKAGE_NAME_FORMAT = '/^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+[0-9a-z_]$/'; case PACKAGE_NAME_FORMAT = '/^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+[0-9a-z_]$/';
public const COMPOSER_VERSION_FORMAT = '/^([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/'; case COMPOSER_VERSION_FORMAT = '/^([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/';
public const PYTHON_VERSION_FORMAT = '/^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/'; case PYTHON_VERSION_FORMAT = '/^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+)?$/';
public const SEMANTIC_VERSIONING_2 = '/^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/m'; case SEMANTIC_VERSIONING_2 = '/^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/m';
public const UNIX_PATH = '/^(((?:\.\/|\.\.\/|\/)?(?:\.?\w+\/)*)(\.?\w+\.?\w+))$/m'; case UNIX_PATH = '/^(((?:\.\/|\.\.\/|\/)?(?:\.?\w+\/)*)(\.?\w+\.?\w+))$/m';
public const CONSTANT_NAME = '/^([^\x00-\x7F]|[\w_\ \.\+\-]){2,64}$/'; case CONSTANT_NAME = '/^([^\x00-\x7F]|[\w_\ \.\+\-]){2,64}$/';
public const EXECUTION_POLICY_NAME = '/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/m'; case EXECUTION_POLICY_NAME = '/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/m';
/** /**
* @author <purplex> * @author <purplex>
*/ */
public const REMOTE_PACKAGE = '/^(?<vendor>[^\/\n]+)\/(?<package>[^:=\n@]+)(?:=(?<version>[^:@\n]+))?(?::(?<branch>[^@\n]+))?@(?<source>.*)$/m'; case REMOTE_PACKAGE = '/^(?<vendor>[^\/\n]+)\/(?<package>[^:=\n@]+)(?:=(?<version>[^:@\n]+))?(?::(?<branch>[^@\n]+))?@(?<source>.*)$/m';
} }

View file

@ -169,7 +169,7 @@
} }
// If the input is a remote package, we can assume it's a remote package input // If the input is a remote package, we can assume it's a remote package input
if(preg_match(RegexPatterns::REMOTE_PACKAGE, $input) === 1) if(preg_match(RegexPatterns::REMOTE_PACKAGE->value, $input) === 1)
{ {
return $this->installRemotePackage(RemotePackageInput::fromString($input), $authentication, $options); return $this->installRemotePackage(RemotePackageInput::fromString($input), $authentication, $options);
} }

View file

@ -267,7 +267,7 @@
*/ */
public function validate(): void public function validate(): void
{ {
if(!preg_match(RegexPatterns::UUID, $this->uuid)) if(!preg_match(RegexPatterns::UUID->value, $this->uuid))
{ {
throw new ConfigurationException(sprintf('The UUID is not a valid v4 UUID: %s, in property assembly.uuid', $this->uuid)); throw new ConfigurationException(sprintf('The UUID is not a valid v4 UUID: %s, in property assembly.uuid', $this->uuid));
} }
@ -277,7 +277,7 @@
throw new ConfigurationException(sprintf('The version number is invalid: %s, in property assembly.version', $this->version)); throw new ConfigurationException(sprintf('The version number is invalid: %s, in property assembly.version', $this->version));
} }
if($this->package !== null && !preg_match(RegexPatterns::PACKAGE_NAME_FORMAT, $this->package)) if($this->package !== null && !preg_match(RegexPatterns::PACKAGE_NAME_FORMAT->value, $this->package))
{ {
throw new ConfigurationException(sprintf('The package name is invalid: %s, in property assembly.package', $this->package)); throw new ConfigurationException(sprintf('The package name is invalid: %s, in property assembly.package', $this->package));
} }

View file

@ -230,7 +230,7 @@
*/ */
public static function fromString(string $input): RemotePackageInput public static function fromString(string $input): RemotePackageInput
{ {
if (preg_match(RegexPatterns::REMOTE_PACKAGE, $input, $matches)) if (preg_match(RegexPatterns::REMOTE_PACKAGE->value, $input, $matches))
{ {
if ($matches['package'] === null || $matches['vendor'] === null) if ($matches['package'] === null || $matches['vendor'] === null)
{ {

View file

@ -76,17 +76,17 @@ namespace ncc\Utilities;
*/ */
public static function version(string $input): bool public static function version(string $input): bool
{ {
if(preg_match(RegexPatterns::SEMANTIC_VERSIONING_2, $input)) if(preg_match(RegexPatterns::SEMANTIC_VERSIONING_2->value, $input))
{ {
return true; return true;
} }
if(preg_match(RegexPatterns::COMPOSER_VERSION_FORMAT, $input)) if(preg_match(RegexPatterns::COMPOSER_VERSION_FORMAT->value, $input))
{ {
return true; return true;
} }
if(preg_match(RegexPatterns::PYTHON_VERSION_FORMAT, $input)) if(preg_match(RegexPatterns::PYTHON_VERSION_FORMAT->value, $input))
{ {
return true; return true;
} }
@ -133,7 +133,7 @@ namespace ncc\Utilities;
return false; return false;
} }
if(!preg_match(RegexPatterns::PACKAGE_NAME_FORMAT, $input)) if(!preg_match(RegexPatterns::PACKAGE_NAME_FORMAT->value, $input))
{ {
return false; return false;
} }
@ -175,7 +175,7 @@ namespace ncc\Utilities;
*/ */
public static function unixFilepath($input): bool public static function unixFilepath($input): bool
{ {
if(preg_match(RegexPatterns::UNIX_PATH, $input)) if(preg_match(RegexPatterns::UNIX_PATH->value, $input))
{ {
return true; return true;
} }
@ -196,7 +196,7 @@ namespace ncc\Utilities;
return false; return false;
} }
if(!preg_match(RegexPatterns::CONSTANT_NAME, $input)) if(!preg_match(RegexPatterns::CONSTANT_NAME->value, $input))
{ {
return false; return false;
} }
@ -212,7 +212,7 @@ namespace ncc\Utilities;
*/ */
public static function executionPolicyName(string $input): bool public static function executionPolicyName(string $input): bool
{ {
if(!preg_match(RegexPatterns::EXECUTION_POLICY_NAME, $input)) if(!preg_match(RegexPatterns::EXECUTION_POLICY_NAME->value, $input))
{ {
return false; return false;
} }
@ -308,7 +308,7 @@ namespace ncc\Utilities;
*/ */
public static function remotePackageInput(string $input): bool public static function remotePackageInput(string $input): bool
{ {
if(preg_match(RegexPatterns::REMOTE_PACKAGE, $input)) if(preg_match(RegexPatterns::REMOTE_PACKAGE->value, $input))
{ {
return true; return true;
} }