From: "prijutme4ty (Ilya Vorontsov)" Date: 2012-12-09T23:12:27+09:00 Subject: [ruby-core:50715] [ruby-trunk - Bug #7537] OptionParser treats negative digits as options Issue #7537 has been updated by prijutme4ty (Ilya Vorontsov). In my opinion, negative numbers shouldn't be treated as option keys unless it was explicitly specified. In other cases them should be treated as usual parameters. ---------------------------------------- Bug #7537: OptionParser treats negative digits as options https://bugs.ruby-lang.org/issues/7537#change-34562 Author: prijutme4ty (Ilya Vorontsov) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: 1.9.3(p0, p327 both) Is it intentional that negative digits are treated as options? If I use negative digit as an argument of an option, it is treated as a number OptionParser.new {|opts| opts.on('-p','--pvalue VAL', Integer, 'P-value') {|v| puts "P-value: #{v}" } }.parse! `ruby my_test.rb -p -1` works normally But if I use it as optional argument of an option: OptionParser.new {|opts| opts.on('-p','--pvalue [VAL]', Integer, 'P-value') {|v| puts "P-value: #{v}" } }.parse! `ruby my_test.rb -p -1` fails with "Invalid option -1" Also I can't use it as non-optional argument OptionParser.new {|opts| opts.on('-n', 'no Pvalue argument, other arguments only') {} }.parse! puts ARGV `ruby my_test.rb -1` also fails with "Invalid option -1" -- http://bugs.ruby-lang.org/