From: byrnejb@... Date: 2014-07-09T20:21:03+00:00 Subject: [ruby-core:63614] [ruby-trunk - Bug #10021] [Open] OptParse does not handle missing arguments bracketed by valid option switches Issue #10021 has been reported by James Byrne. ---------------------------------------- Bug #10021: OptParse does not handle missing arguments bracketed by valid option switches https://bugs.ruby-lang.org/issues/10021 * Author: James Byrne * Status: Open * Priority: Normal * Assignee: * Category: core * Target version: * ruby -v: Ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux-gnu] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- OS=CentOS-6.5 x86_64 Ruby=2.1.2p95 I have this in an optparse structure: # Create parser opts = OptionParser.new do |opts| opts.banner = <<-BANNER . . . opts.on("-r", "--rerun=DATEorTRANSACTION", "--re-run=DATEorTRANSACTION", "Re-run extract for specific date (yyyymmdd)", " or transaction number (SSSSSNNNNNNNNC).", " Multiple specifications are ORed for selections.", " All billable transactions are selectable", " whether previously billed or not.", " Sets and enforces --no-update" ) do |rr| options.rerun << rr options.update = false end . . . If I run a program incorporating this option class so: --re-run x --rerun y -r Then I see this: missing argument: -r However, if I do this: --re-run x --rerun y -r --debug or this --re-run x -r --rerun y Then the program runs and does not report the missing argument. Is this the intended behaviour? It does not seem correct to me. -- https://bugs.ruby-lang.org/