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);
|
$longest ??= self::get_longest($this->_options, self::TYPE_SHORT);
|
||||||
if ($longest !== null) {
|
if ($longest !== null) {
|
||||||
$longest = preg_replace('/[^A-Za-z0-9]+/', "_", $longest);
|
$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)) {
|
if (preg_match('/^[0-9]/', $longest)) {
|
||||||
# le nom de la propriété ne doit pas commencer par un chiffre
|
# le nom de la propriété ne doit pas commencer par un chiffre
|
||||||
$longest = "p$longest";
|
$longest = "p$longest";
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\cli;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\Aodef;
|
|
||||||
use nulib\tests\TestCase;
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class AodefTest extends TestCase {
|
class AodefTest extends TestCase {
|
@ -1,9 +1,6 @@
|
|||||||
<?php
|
<?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;
|
use nulib\tests\TestCase;
|
||||||
|
|
||||||
class AolistTest extends TestCase {
|
class AolistTest extends TestCase {
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\cli;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\SimpleAolist;
|
use nulib\app\args\SimpleAolist;
|
||||||
use nulib\tests\TestCase;
|
use nulib\tests\TestCase;
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace nulib\app\cli;
|
namespace nulib\app\args;
|
||||||
|
|
||||||
use nulib\app\args\SimpleArgsParser;
|
use nulib\app\args\SimpleArgsParser;
|
||||||
use nulib\tests\TestCase;
|
use nulib\tests\TestCase;
|
||||||
@ -172,4 +172,28 @@ class SimpleArgsParserTest extends TestCase {
|
|||||||
|
|
||||||
self::assertTrue(true);
|
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