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
+18 -13
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>
@@ -384,7 +389,7 @@
<ul class="list-summary">
<li class="entry-summary">
<a href="#new%28var%3AString%2Cshort%3AString%7CNil%2Clong%3AString%2Cenv_var%3AString%2Cdescription%3AString%2Cdelimiter%3AString%3D%22%2C%22%2Cdefault%3AT%7CNil%3Dnil%2Coptions%3AArray%28T%29%7CNil%3Dnil%2Cvalidate%3AT-%3EBool%7CNil%3Dnil%2Con_match%3AProc%28T%2CNil%29%7CNil%3Dnil%2Cformat%3A%3A%3ARegex%7CNil%3Dnil%29-class-method" class="signature"><strong>.new</strong>(var : String, short : String | Nil, long : String, env_var : String, description : String, delimiter : String = <span class="s">&quot;,&quot;</span>, default : T | Nil = <span class="n">nil</span>, options : Array(T) | Nil = <span class="n">nil</span>, validate : T -> Bool | Nil = <span class="n">nil</span>, on_match : Proc(T, Nil) | Nil = <span class="n">nil</span>, format : ::Regex | Nil = <span class="n">nil</span>)</a>
<a href="#new%28var%3AString%2Cshort%3AString%7CNil%2Clong%3AString%2Cenv_var%3AString%7CNil%2Cdescription%3AString%2Cdelimiter%3AString%3D%22%2C%22%2Cdefault%3AT%7CNil%3Dnil%2Coptions%3AArray%28T%29%7CNil%3Dnil%2Cvalidate%3AT-%3EBool%7CNil%3Dnil%2Con_match%3AProc%28T%2CNil%29%7CNil%3Dnil%2Cformat%3A%3A%3ARegex%7CNil%3Dnil%29-class-method" class="signature"><strong>.new</strong>(var : String, short : String | Nil, long : String, env_var : String | Nil, description : String, delimiter : String = <span class="s">&quot;,&quot;</span>, default : T | Nil = <span class="n">nil</span>, options : Array(T) | Nil = <span class="n">nil</span>, validate : T -> Bool | Nil = <span class="n">nil</span>, on_match : Proc(T, Nil) | Nil = <span class="n">nil</span>, format : ::Regex | Nil = <span class="n">nil</span>)</a>
</li>
@@ -467,8 +472,8 @@
description</a>,
<a href="../CliGen/BaseFlag.html#env_var%3AString-instance-method" class="tooltip">
<span>env_var : String</span>
<a href="../CliGen/BaseFlag.html#env_var%3AString%7CNil-instance-method" class="tooltip">
<span>env_var : String | Nil</span>
env_var</a>,
@@ -524,8 +529,8 @@
<h3>Constructor methods inherited from class <code><a href="../CliGen/BaseFlag.html">CliGen::BaseFlag</a></code></h3>
<a href="../CliGen/BaseFlag.html#new%28var%3AString%2Cshort%3AString%7CNil%2Clong%3AString%2Cenv_var%3AString%2Cdescription%3AString%2Cdelimiter%3AString%2Cmeta%3AFlagMeta%29-class-method" class="tooltip">
<span>new(var : String, short : String | Nil, long : String, env_var : String, description : String, delimiter : String, meta : FlagMeta)</span>
<a href="../CliGen/BaseFlag.html#new%28var%3AString%2Cshort%3AString%7CNil%2Clong%3AString%2Cenv_var%3AString%7CNil%2Cdescription%3AString%2Cdelimiter%3AString%2Cmeta%3AFlagMeta%29-class-method" class="tooltip">
<span>new(var : String, short : String | Nil, long : String, env_var : String | Nil, description : String, delimiter : String, meta : FlagMeta)</span>
new</a>
@@ -576,12 +581,12 @@
Constructor Detail
</h2>
<div class="entry-detail" id="new(var:String,short:String|Nil,long:String,env_var:String,description:String,delimiter:String=&quot;,&quot;,default:T|Nil=nil,options:Array(T)|Nil=nil,validate:T-&gt;Bool|Nil=nil,on_match:Proc(T,Nil)|Nil=nil,format:::Regex|Nil=nil)-class-method">
<div class="entry-detail" id="new(var:String,short:String|Nil,long:String,env_var:String|Nil,description:String,delimiter:String=&quot;,&quot;,default:T|Nil=nil,options:Array(T)|Nil=nil,validate:T-&gt;Bool|Nil=nil,on_match:Proc(T,Nil)|Nil=nil,format:::Regex|Nil=nil)-class-method">
<div class="signature">
def self.<strong>new</strong>(var : String, short : String | Nil, long : String, env_var : String, description : String, delimiter : String = <span class="s">&quot;,&quot;</span>, default : T | Nil = <span class="n">nil</span>, options : Array(T) | Nil = <span class="n">nil</span>, validate : T -> Bool | Nil = <span class="n">nil</span>, on_match : Proc(T, Nil) | Nil = <span class="n">nil</span>, format : ::Regex | Nil = <span class="n">nil</span>)
def self.<strong>new</strong>(var : String, short : String | Nil, long : String, env_var : String | Nil, description : String, delimiter : String = <span class="s">&quot;,&quot;</span>, default : T | Nil = <span class="n">nil</span>, options : Array(T) | Nil = <span class="n">nil</span>, validate : T -> Bool | Nil = <span class="n">nil</span>, on_match : Proc(T, Nil) | Nil = <span class="n">nil</span>, format : ::Regex | Nil = <span class="n">nil</span>)
<a class="method-permalink" href="#new%28var%3AString%2Cshort%3AString%7CNil%2Clong%3AString%2Cenv_var%3AString%2Cdescription%3AString%2Cdelimiter%3AString%3D%22%2C%22%2Cdefault%3AT%7CNil%3Dnil%2Coptions%3AArray%28T%29%7CNil%3Dnil%2Cvalidate%3AT-%3EBool%7CNil%3Dnil%2Con_match%3AProc%28T%2CNil%29%7CNil%3Dnil%2Cformat%3A%3A%3ARegex%7CNil%3Dnil%29-class-method">#</a>
<a class="method-permalink" href="#new%28var%3AString%2Cshort%3AString%7CNil%2Clong%3AString%2Cenv_var%3AString%7CNil%2Cdescription%3AString%2Cdelimiter%3AString%3D%22%2C%22%2Cdefault%3AT%7CNil%3Dnil%2Coptions%3AArray%28T%29%7CNil%3Dnil%2Cvalidate%3AT-%3EBool%7CNil%3Dnil%2Con_match%3AProc%28T%2CNil%29%7CNil%3Dnil%2Cformat%3A%3A%3ARegex%7CNil%3Dnil%29-class-method">#</a>
</div>
<br/>