modified the way that the FlagMeta default string gets generated based on Array vs LITERALLY anything else

This commit is contained in:
Tristan Ancelet
2026-08-14 14:57:05 -05:00
parent 21462029e3
commit d1746602b1
2 changed files with 11 additions and 2 deletions
+10 -1
View File
@@ -74,11 +74,20 @@ module CliGen
{% elem = T.type_vars.first %} {% elem = T.type_vars.first %}
{% raise "ERROR : Flag(#{T}) : Error your flag subtype #{elem} must have a to_s method" unless elem.class.has_method? :to_s %} {% raise "ERROR : Flag(#{T}) : Error your flag subtype #{elem} must have a to_s method" unless elem.class.has_method? :to_s %}
{% end %} {% end %}
unless @default.nil?
{% if T < Array %}
default = "[" + @default.not_nil!.map(&.to_s).join(", ") + "]"
{% else %}
default = @default.not_nil!.to_s
{% end %}
else
default = nil
end
meta = FlagMeta.new( meta = FlagMeta.new(
type: {{T.stringify}}, type: {{T.stringify}},
array: {{ T < Array ? true : false }}, array: {{ T < Array ? true : false }},
options: {% if T < Array %} @options.try(&.first.map(&.to_s)) {% else %} @options.try(&.map(&.to_s)) {% end %}, options: {% if T < Array %} @options.try(&.first.map(&.to_s)) {% else %} @options.try(&.map(&.to_s)) {% end %},
default: @default.try(&.to_s), default: default,
format: @format.try(&.source) format: @format.try(&.source)
) )
super(var, short, long, env_var, description, delimiter, meta) super(var, short, long, env_var, description, delimiter, meta)
+1 -1
View File
@@ -14,7 +14,7 @@ Flags:
<%- else -%> <%- else -%>
<%- flags = [flag.short,flag.long.strip] -%> <%- flags = [flag.short,flag.long.strip] -%>
<%- end -%> <%- end -%>
<%= "%-#{len}s %s" % [flags.join(","), flag.description.strip] %><%= flag.meta.options.nil? ? "" : " (valid: #{flag.meta.options.not_nil!.join(", ")})" %><%= flag.meta.default.nil? ? "" : " (default: #{flag.meta.default.to_s})" %> <%= "%-#{len}s %s" % [flags.join(","), flag.description.strip] %><%= flag.meta.options.nil? ? "" : " (valid: #{flag.meta.options.not_nil!.join(", ")})" %><%= flag.meta.default.nil? ? "" : " (default: #{flag.meta.default.not_nil!})" %>
<%- if verbose? -%> <%- if verbose? -%>
<%= "%-#{len}s %s" % ["", "Type: #{flag.meta.type}"] %> <%= "%-#{len}s %s" % ["", "Type: #{flag.meta.type}"] %>
<%= "%-#{len}s %s" % ["", "ENV VAR: #{flag.env_var}"] %> <%= "%-#{len}s %s" % ["", "ENV VAR: #{flag.env_var}"] %>