Issue #14728 has been reported by xz0r (xz0r xz0r).

----------------------------------------
Bug #14728: OptionParser takes other options as argument values
https://bugs.ruby-lang.org/issues/14728

* Author: xz0r (xz0r xz0r)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
`test.rb`

~~~ ruby
require 'optparse'

options = {}
OptionParser.new do |opts|
  opts.banner = "Usage: example.rb [options]"

  opts.on("--verbose", "Run verbosely") do |v|
    options[:verbose] = v
  end
  opts.on("-q","--custom MANDATORY", "custom") do |x|
    options[:custom] = x
  end
end.parse!

p options
~~~

If I run the above script as follows below is output: 
$ ruby test.rb --custom --verbose
{:custom=>"--verbose"}

This is not the expected behaviour as `--verbose` should not be set as the option value.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>