def self.argument_to_slot(options, available, arg)
if Array(arg[:covered_by]).any?{ |k| !options.__explicit__[k].nil? }
return nil
end
option = arg[:option_symbol]
value = options.__explicit__[option] if option
if value.nil?
value =
if arg[:type] == :list
take_leading_list(available)
else
v = available.shift
if v == '--'
v = nil
else
available.shift if available.first == '--'
end
v
end
end
value = options[option] if option && (value.nil? || (value.is_a?(Array) && value.blank?))
if arg[:type] == :list
value = Array(value)
end
options[option] = value if option && !value.nil?
value
end