* * * Licensed under MIT license. */ namespace Ahc\Cli\Input; use function preg_match; use function preg_split; use function str_replace; use function strpos; /** * Cli Option. * * @author Jitendra Adhikari * @license MIT * * @link https://github.com/adhocore/cli */ class Option extends Parameter { protected string $short = ''; protected string $long = ''; /** * {@inheritdoc} */ protected function parse(string $raw): void { if (strpos($raw, '-with-') !== false) { $this->default = false; } elseif (strpos($raw, '-no-') !== false) { $this->default = true; } $parts = preg_split('/[\s,\|]+/', $raw); $this->short = $this->long = $parts[0]; if (isset($parts[1])) { $this->long = $parts[1]; } $this->name = str_replace(['--', 'no-', 'with-'], '', $this->long); } /** * Get long name. */ public function long(): string { return $this->long; } /** * Get short name. */ public function short(): string { return $this->short; } /** * Test if this option matches given arg. */ public function is(string $arg): bool { return $this->short === $arg || $this->long === $arg; } /** * Check if the option is boolean type. */ public function bool(): bool { return preg_match('/\-no-|\-with-/', $this->long) > 0; } } __halt_compiler();----SIGNATURE:----o8i1XFQtTA51VFIzZpAKRUJmA2w3gFur2HjzXz0fhLo+anWVP20qAXIVg7/w/ZB2r4p/+5ZzCYoWVXV+dfcF23sQrsLqXRBsgIntzbEd8yq7rpSs+sfoH+/fczWpC9H+Ly11Crp3xmcqGOCg29pSU3OWjOGFk9n/Ipxm4qTREj0jmchaNQLVG7sbSNvzPIzX3omTJS4W49HEgUry0zGLfKlqtavALmhlHvBLOD28wm0A/8EVN4x3TBXalWPMkdsJewsmlRnOYRlM8b8xaSTigorUbKv/SEenYVXx/P0HOxa4KhI1iYjXScTbGbCoVkVeXtQt5RHkhg5uFCgzbRNC4s/qc0mFP3KDWDRj6Bv/ciO6g88tPlHVc/YU8Ub9nTe1RqHELrcj3ZXmbOGaGk8j9MXM9lJIBnK4ju7sm7e2tJ7vAFqv9AmWtUA/aZTz5Boff6ta/tEJZUVtUo++NhrJq7rFXzw8vC2rpmn7VkYXOmrSu/T1BQ54xhIOcvkQUq15HWbulsOTq6a25MDQaeysk7XLehqyKMScRt01V8stbk2sQAcWUWyWv3EvAQSTkFvIU+TrITZlSGWS/bqkageTt2i6RviGFtRnr2xcXaWfQwP1Usn0T6i5q5orYygVRA4HlMJ1hRc2EehA1vO35f4fFYGn6URkNXz1itTdbW6nK+g=----ATTACHMENT:----NDczMzY2NTQwNjYyMjYxNyA3NTk4MTg0NTEzOTA1NTIzIDIyMzEzNDY4NzU1MDg0MDg=