From: "jeremyevans0 (Jeremy Evans) via ruby-core" Date: 2023-08-25T18:07:11+00:00 Subject: [ruby-core:114559] [Ruby master Bug#18783] OptionParser should recognize "-" as an optional argument 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/