[ruby-core:114559] [Ruby master Bug#18783] OptionParser should recognize "-" as an optional argument
From:
"jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date:
2023-08-25 18:07:11 UTC
List:
ruby-core #114559
Issue #18783 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Open to Closed
Merged at commit:419ad1e13e6287d0b7a6ba1dfeb485d2f889bf9e
----------------------------------------
Bug #18783: OptionParser should recognize "-" as an optional argument
https://bugs.ruby-lang.org/issues/18783#change-104368
* Author: konsolebox (K B)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 2.7.4p191, ruby 3.1.2p20
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN
----------------------------------------
``` ruby
require 'optparse'
optarg = nil
OptionParser.new do |parser|
parser.on("-o", "--opt [ARG]", "Option with optional argument") do |arg|
optarg = arg
end
end.parse!
puts "#{optarg.inspect}, #{ARGV.inspect}"
```
Executing the code above with `-o -` as arguments outputs `nil, ["-"]` when it should produce `"-", []` instead.
OptionParser recognizes `-` as a general non-option argument but it doesn't do the same when `-` follows an option with an optional argument.
In my shell script, I consider options as `-?*` (glob) instead of `-*` so `-` is also considered as a valid argument. Perhaps OptionParser should do the same.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/