modifs.mineures sans commentaires
This commit is contained in:
		
							parent
							
								
									94c268d81a
								
							
						
					
					
						commit
						417b2bc693
					
				| @ -183,9 +183,11 @@ class ArgDef { | ||||
|     $parents = $this->parents; | ||||
|     if ($parents === null) return; | ||||
|     foreach ($parents as $parent) { | ||||
|       $argDef = $parent["arg"] ?? null; | ||||
|       $argDef = $parent[0] ?? null; | ||||
|       if (is_array($argDef)) $argDef = new self($argDef); | ||||
|       elseif (is_string($argDef)) $argDef = $argDefs->getArgDef($argDef); | ||||
|       else throw new ArgException("parent must be string or array"); | ||||
|       if ($argDef === null) continue; | ||||
|       $argDef = new self($argDef); | ||||
|       $this->options = $argDef->options; | ||||
|       $this->removeOptions(varray::withn($parent["remove"] ?? null)); | ||||
|       $this->addOptions(varray::withn($parent["add"] ?? null)); | ||||
|  | ||||
| @ -63,6 +63,8 @@ abstract class ArgDefs { | ||||
|   public ?bool $autohelp = null; | ||||
|   public ?bool $autoremains = null; | ||||
| 
 | ||||
|   abstract function getArgDef(string $option): ?ArgDef; | ||||
| 
 | ||||
|   /** | ||||
|    * consommer les arguments de $src en avançant l'index $srci et provisionner | ||||
|    * $dest à partir de $desti. si $desti est plus grand que 0, celà veut dire | ||||
|  | ||||
| @ -34,4 +34,24 @@ faire une implémentation SimpleArgsParser qui ne supporte pas les commandes, un | ||||
| 
 | ||||
| puis faire une implémentation ArgsParser qui supporte les commandes, et les options dynamiques | ||||
| 
 | ||||
| ## WIP | ||||
| 
 | ||||
| "parent" est remplacé par "defaults", "merges", "merge" | ||||
| "add" et "remove" sont au niveau de la définition | ||||
| 
 | ||||
| ainsi, ["extends" => [PARENT, "add" => A, "remove" => R]] | ||||
| devient ["merge" => PARENT, "add" => A, "remove" => R] | ||||
| 
 | ||||
| supporter aussi "merge" => $string | ||||
| 
 | ||||
| NB: dans ce cas, "add" est peut-être inutile? | ||||
| 
 | ||||
| documenter que dans les cas simples, on peut tout simplement refaire la définition, e.g | ||||
| ~~~php | ||||
| [ | ||||
|   ["-x", "help" => "first"], | ||||
|   ["-x", "help" => "second"], | ||||
| ] | ||||
| ~~~ | ||||
| 
 | ||||
| -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary | ||||
| @ -123,8 +123,7 @@ class ArgDefTest extends TestCase { | ||||
|     $BASE = ["-o:", "--longo"]; | ||||
| 
 | ||||
|     $argDef = new ArgDef([ | ||||
|       "parent" => [ | ||||
|         "arg" => $BASE, | ||||
|       "parent" => [$BASE, | ||||
|         "add" => ["-a", "--longa"], | ||||
|         "remove" => ["-o", "--longo"], | ||||
|       ], | ||||
| @ -135,8 +134,7 @@ class ArgDefTest extends TestCase { | ||||
|       false, 0, 0, ""); | ||||
| 
 | ||||
|     $argDef = new ArgDef([ | ||||
|       "parent" => [ | ||||
|         "arg" => $BASE, | ||||
|       "parent" => [$BASE, | ||||
|         "add" => ["-a", "--longa"], | ||||
|         "remove" => ["-o", "--longo"], | ||||
|       ], | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user