ruby - OptionParser devolviendo bool en lugar de argumento?
optparse (1)
Has especificado que la opción -v
no tiene un argumento:
opts.on("-v", ...
Si quieres que tome una discusión, tienes que decirlo:
opts.on("-v n", "--verbose=n", ...
#-----------^
Y si quieres forzar a n
para que sea un entero, entonces:
opts.on(''-v n'', ''--verbose=n'', OptionParser::DecimalInteger, ...
Quieres comenzar a leer los documentos de make_switch
(como es) y luego aplicar ingeniería inversa a los ejemplos.
No se sienta mal por estar confundido, la documentación de OptionParser no es lo mejor de lo mejor.
Cuando ejecuto este ejemplo desde la documentación de OptionParser:
require ''optparse''
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
options[:verbose] = v
end
end.parse!
p options
p ARGV
y escriba: ruby test.rb -v 100
, devuelve:
{:verbose=>true}
["100"]
¿No debería ser 100
detallado, no un booleano?
No tengo idea de esto, ¿alguien tiene algún consejo?