ruby optparse

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?