Added new macro features. resolve_value + default: key. Added raises to prevent CliGen features from being used outside of a already parsed state, and worked on specs. Will be working on specs later on as well to finish covering regex & redo timeparse & relative_operations

This commit is contained in:
2026-09-07 16:40:02 -05:00
parent 3fa77f5707
commit 8fab6912fc
89 changed files with 3615 additions and 515 deletions
+52 -9
View File
@@ -117,6 +117,11 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/Common" data-name="cligen::common">
<a href="../CliGen/Common.html">Common</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/ConfigurationError" data-name="cligen::configurationerror">
<a href="../CliGen/ConfigurationError.html">ConfigurationError</a>
@@ -182,6 +187,11 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/InternalVar" data-name="cligen::internalvar">
<a href="../CliGen/InternalVar.html">InternalVar</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/InvalidFlagValueError" data-name="cligen::invalidflagvalueerror">
<a href="../CliGen/InvalidFlagValueError.html">InvalidFlagValueError</a>
@@ -252,11 +262,6 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/Selection" data-name="cligen::selection">
<a href="../CliGen/Selection.html">Selection</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/SubCommand" data-name="cligen::subcommand">
<a href="../CliGen/SubCommand.html">SubCommand</a>
@@ -429,7 +434,7 @@ Everything that doesn't depend on T lives here.</p>
<ul class="list-summary">
<li class="entry-summary">
<a href="#new%28name%3AString%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%2Cmeta%3ACommandMeta%2Cdescription%3AString%7CNil%3Dnil%29-class-method" class="signature"><strong>.new</strong>(name : String, flags : Array(BaseFlag), commands : Array(BaseCommandNode), pre_run_commands : Array(RunCommand), post_run_commands : Array(RunCommand), meta : CommandMeta, description : String | Nil = <span class="n">nil</span>)</a>
<a href="#new%28name%3AString%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%2Cmeta%3ACommandMeta%2Cparent%3ABaseCommandNode%7CNil%3Dnil%2Cdescription%3AString%7CNil%3Dnil%29-class-method" class="signature"><strong>.new</strong>(name : String, flags : Array(BaseFlag), commands : Array(BaseCommandNode), pre_run_commands : Array(RunCommand), post_run_commands : Array(RunCommand), meta : CommandMeta, parent : BaseCommandNode | Nil = <span class="n">nil</span>, description : String | Nil = <span class="n">nil</span>)</a>
</li>
@@ -451,6 +456,11 @@ Everything that doesn't depend on T lives here.</p>
</h2>
<ul class="list-summary">
<li class="entry-summary">
<a href="#all_commands%3AArray%28BaseCommandNode%29-instance-method" class="signature"><strong>#all_commands</strong> : Array(BaseCommandNode)</a>
</li>
<li class="entry-summary">
<a href="#all_flags%3AArray%28BaseFlag%29-instance-method" class="signature"><strong>#all_flags</strong> : Array(BaseFlag)</a>
@@ -521,6 +531,11 @@ Everything that doesn't depend on T lives here.</p>
</li>
<li class="entry-summary">
<a href="#parent%3F%3ABaseCommandNode%7CNil-instance-method" class="signature"><strong>#parent?</strong> : BaseCommandNode | Nil</a>
</li>
<li class="entry-summary">
<a href="#process%28args%3AArray%28String%29%29%3ANil-instance-method" class="signature"><strong>#process</strong>(args : Array(String)) : Nil</a>
@@ -592,12 +607,12 @@ Everything that doesn't depend on T lives here.</p>
Constructor Detail
</h2>
<div class="entry-detail" id="new(name:String,flags:Array(BaseFlag),commands:Array(BaseCommandNode),pre_run_commands:Array(RunCommand),post_run_commands:Array(RunCommand),meta:CommandMeta,description:String|Nil=nil)-class-method">
<div class="entry-detail" id="new(name:String,flags:Array(BaseFlag),commands:Array(BaseCommandNode),pre_run_commands:Array(RunCommand),post_run_commands:Array(RunCommand),meta:CommandMeta,parent:BaseCommandNode|Nil=nil,description:String|Nil=nil)-class-method">
<div class="signature">
def self.<strong>new</strong>(name : String, flags : Array(<a href="../CliGen/BaseFlag.html">BaseFlag</a>), commands : Array(<a href="../CliGen/BaseCommandNode.html">BaseCommandNode</a>), pre_run_commands : Array(<a href="../CliGen/RunCommand.html">RunCommand</a>), post_run_commands : Array(<a href="../CliGen/RunCommand.html">RunCommand</a>), meta : <a href="../CliGen/CommandMeta.html">CommandMeta</a>, description : String | Nil = <span class="n">nil</span>)
def self.<strong>new</strong>(name : String, flags : Array(<a href="../CliGen/BaseFlag.html">BaseFlag</a>), commands : Array(<a href="../CliGen/BaseCommandNode.html">BaseCommandNode</a>), pre_run_commands : Array(<a href="../CliGen/RunCommand.html">RunCommand</a>), post_run_commands : Array(<a href="../CliGen/RunCommand.html">RunCommand</a>), meta : <a href="../CliGen/CommandMeta.html">CommandMeta</a>, parent : <a href="../CliGen/BaseCommandNode.html">BaseCommandNode</a> | Nil = <span class="n">nil</span>, description : String | Nil = <span class="n">nil</span>)
<a class="method-permalink" href="#new%28name%3AString%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%2Cmeta%3ACommandMeta%2Cdescription%3AString%7CNil%3Dnil%29-class-method">#</a>
<a class="method-permalink" href="#new%28name%3AString%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%2Cmeta%3ACommandMeta%2Cparent%3ABaseCommandNode%7CNil%3Dnil%2Cdescription%3AString%7CNil%3Dnil%29-class-method">#</a>
</div>
<br/>
@@ -622,6 +637,20 @@ Everything that doesn't depend on T lives here.</p>
Instance Method Detail
</h2>
<div class="entry-detail" id="all_commands:Array(BaseCommandNode)-instance-method">
<div class="signature">
def <strong>all_commands</strong> : Array(<a href="../CliGen/BaseCommandNode.html">BaseCommandNode</a>)
<a class="method-permalink" href="#all_commands%3AArray%28BaseCommandNode%29-instance-method">#</a>
</div>
<br/>
<div>
</div>
</div>
<div class="entry-detail" id="all_flags:Array(BaseFlag)-instance-method">
<div class="signature">
@@ -818,6 +847,20 @@ Everything that doesn't depend on T lives here.</p>
</div>
</div>
<div class="entry-detail" id="parent?:BaseCommandNode|Nil-instance-method">
<div class="signature">
def <strong>parent?</strong> : <a href="../CliGen/BaseCommandNode.html">BaseCommandNode</a> | Nil
<a class="method-permalink" href="#parent%3F%3ABaseCommandNode%7CNil-instance-method">#</a>
</div>
<br/>
<div>
</div>
</div>
<div class="entry-detail" id="process(args:Array(String)):Nil-instance-method">
<div class="signature">