From ec6b368a82e790e5c5778a229e3233d2152bb7f5 Mon Sep 17 00:00:00 2001 From: netkas Date: Sat, 14 Sep 2024 08:39:05 -0400 Subject: [PATCH] Convert ProjectOptions constants to enum cases --- src/ncc/Classes/PhpExtension/Templates/CliTemplate.php | 2 +- src/ncc/Enums/Options/ProjectOptions.php | 4 ++-- src/ncc/Managers/PackageManager.php | 2 +- src/ncc/Objects/ProjectConfiguration/Project.php | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php b/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php index d00766c..d28c36c 100644 --- a/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php +++ b/src/ncc/Classes/PhpExtension/Templates/CliTemplate.php @@ -53,7 +53,7 @@ ); $project_manager->getProjectConfiguration()->getBuild()->setMain('main_policy'); - $project_manager->getProjectConfiguration()->getProject()->addOption(ProjectOptions::CREATE_SYMLINK, true); + $project_manager->getProjectConfiguration()->getProject()->addOption(ProjectOptions::CREATE_SYMLINK->value, true); // Create the release build configuration $release_executable = new BuildConfiguration('release_executable', diff --git a/src/ncc/Enums/Options/ProjectOptions.php b/src/ncc/Enums/Options/ProjectOptions.php index 97b9248..d9d6876 100644 --- a/src/ncc/Enums/Options/ProjectOptions.php +++ b/src/ncc/Enums/Options/ProjectOptions.php @@ -22,7 +22,7 @@ namespace ncc\Enums\Options; - final class ProjectOptions + enum ProjectOptions : string { - public const CREATE_SYMLINK = 'create_symlink'; + case CREATE_SYMLINK = 'create_symlink'; } \ No newline at end of file diff --git a/src/ncc/Managers/PackageManager.php b/src/ncc/Managers/PackageManager.php index 52068fa..bcb0f54 100644 --- a/src/ncc/Managers/PackageManager.php +++ b/src/ncc/Managers/PackageManager.php @@ -453,7 +453,7 @@ throw new IOException(sprintf('Failed to add package to package lock file due to an exception: %s', $e->getMessage()), $e); } - if($package_reader->getMetadata()->getOption(ProjectOptions::CREATE_SYMLINK) === null) + if($package_reader->getMetadata()->getOption(ProjectOptions::CREATE_SYMLINK->value) === null) { // Remove the symlink if it exists if($this->package_lock->getEntry($package_reader->getAssembly()->getPackage())->isSymlinkRegistered()) diff --git a/src/ncc/Objects/ProjectConfiguration/Project.php b/src/ncc/Objects/ProjectConfiguration/Project.php index 40d91d3..f708175 100644 --- a/src/ncc/Objects/ProjectConfiguration/Project.php +++ b/src/ncc/Objects/ProjectConfiguration/Project.php @@ -105,6 +105,7 @@ */ public function addOption(string $key, mixed $value): void { + // TODO: Options here could be using ProjectOptions enum $this->options[$key] = $value; }