modified the way that the FlagMeta default string gets generated based on Array vs LITERALLY anything else
This commit is contained in:
+10
-1
@@ -74,11 +74,20 @@ module CliGen
|
||||
{% 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 %}
|
||||
{% 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(
|
||||
type: {{T.stringify}},
|
||||
array: {{ T < Array ? true : false }},
|
||||
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)
|
||||
)
|
||||
super(var, short, long, env_var, description, delimiter, meta)
|
||||
|
||||
@@ -14,7 +14,7 @@ Flags:
|
||||
<%- else -%>
|
||||
<%- flags = [flag.short,flag.long.strip] -%>
|
||||
<%- 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? -%>
|
||||
<%= "%-#{len}s %s" % ["", "Type: #{flag.meta.type}"] %>
|
||||
<%= "%-#{len}s %s" % ["", "ENV VAR: #{flag.env_var}"] %>
|
||||
|
||||
Reference in New Issue
Block a user