optparse icon indicating copy to clipboard operation
optparse copied to clipboard

Ruby 3.3.5 --help throws error if parser.require_exact = true

Open ETLJ opened this issue 1 year ago • 0 comments

ruby -v shows ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]

gem list --local shows optparse (default: 0.4.0)

Snippet:

require 'optparse'

parser = OptionParser.new

parser.on('-x [XXX]', 'description') do |value|
  p ['-x', value]
end

parser.require_exact = true

parser.parse!

Results in an error:

/home/elovell/.rubies/ruby-master/lib/ruby/3.3.0/optparse.rb:1645:in `block in parse_in_order': undefined method `include?' for nil (NoMethodError)

            if require_exact && !sw.long.include?(arg)
                                        ^^^^^^^^^
        from /home/elovell/.rubies/ruby-master/lib/ruby/3.3.0/optparse.rb:1636:in `catch'
        from /home/elovell/.rubies/ruby-master/lib/ruby/3.3.0/optparse.rb:1636:in `parse_in_order'
        from /home/elovell/.rubies/ruby-master/lib/ruby/3.3.0/optparse.rb:1630:in `order!'
        from /home/elovell/.rubies/ruby-master/lib/ruby/3.3.0/optparse.rb:1739:in `permute!'
        from /home/elovell/.rubies/ruby-master/lib/ruby/3.3.0/optparse.rb:1764:in `parse!'
        from test.rb:9:in `<main>'

Removing parser.require_exact = true results in

Usage: test [options]
    -x [XXX]                         description

ETLJ avatar Sep 26 '24 14:09 ETLJ