support --no-arg
This commit is contained in:
parent
526a693ead
commit
f55c66e1f3
@ -436,6 +436,11 @@ class Aodef {
|
||||
$longest ??= self::get_longest($this->_options, self::TYPE_SHORT);
|
||||
if ($longest !== null) {
|
||||
$longest = preg_replace('/[^A-Za-z0-9]+/', "_", $longest);
|
||||
# les options --no-name mettent à jour la valeur $name et inversent
|
||||
# le traitement
|
||||
if ($longest !== "no_" && str::del_prefix($longest, "no_")) {
|
||||
$this->inverse ??= true;
|
||||
}
|
||||
if (preg_match('/^[0-9]/', $longest)) {
|
||||
# le nom de la propriété ne doit pas commencer par un chiffre
|
||||
$longest = "p$longest";
|
||||
|
@ -1,7 +1,6 @@
|
||||
<?php
|
||||
namespace nulib\app\cli;
|
||||
namespace nulib\app\args;
|
||||
|
||||
use nulib\app\args\Aodef;
|
||||
use nulib\tests\TestCase;
|
||||
|
||||
class AodefTest extends TestCase {
|
@ -1,9 +1,6 @@
|
||||
<?php
|
||||
namespace nulib\app\cli;
|
||||
namespace nulib\app\args;
|
||||
|
||||
use nulib\app\args\Aogroup;
|
||||
use nulib\app\args\Aolist;
|
||||
use nulib\app\args\Aosection;
|
||||
use nulib\tests\TestCase;
|
||||
|
||||
class AolistTest extends TestCase {
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
namespace nulib\app\cli;
|
||||
namespace nulib\app\args;
|
||||
|
||||
use nulib\app\args\SimpleAolist;
|
||||
use nulib\tests\TestCase;
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
namespace nulib\app\cli;
|
||||
namespace nulib\app\args;
|
||||
|
||||
use nulib\app\args\SimpleArgsParser;
|
||||
use nulib\tests\TestCase;
|
||||
@ -172,4 +172,28 @@ class SimpleArgsParserTest extends TestCase {
|
||||
|
||||
self::assertTrue(true);
|
||||
}
|
||||
|
||||
function testAutono() {
|
||||
$parser = new SimpleArgsParser([
|
||||
["-a", "--plouf"],
|
||||
["-b", "--no-plouf"],
|
||||
]);
|
||||
$dest = [];
|
||||
$parser->parse($dest, ["-aabb"]);
|
||||
self::assertSame(["plouf" => 0, "args" => []], $dest);
|
||||
|
||||
$parser = new SimpleArgsParser([
|
||||
["-a", "--plouf", "value" => true],
|
||||
["-b", "--no-plouf", "value" => false],
|
||||
]);
|
||||
$dest = ["plouf" => null];
|
||||
$parser->parse($dest, []);
|
||||
self::assertSame(["plouf" => null, "args" => []], $dest);
|
||||
$dest = ["plouf" => null];
|
||||
$parser->parse($dest, ["-a"]);
|
||||
self::assertSame(["plouf" => true, "args" => []], $dest);
|
||||
$dest = ["plouf" => null];
|
||||
$parser->parse($dest, ["-b"]);
|
||||
self::assertSame(["plouf" => false, "args" => []], $dest);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user