From: Minero Aoki Date: 2004-12-23T00:56:12+09:00 Subject: Re: ruby-dev summary 25045-25260 Hi, In mail "Re: ruby-dev summary 25045-25260" Austin Ziegler wrote: > > [ruby-dev:25048] about optparse specification > > Minero Aoki claimed that optparse should not handle -L when --line > > is given. It appears that anyone is not interested in this issue, > > since there is no reply so far. > > Can you explain this a bit? If I do this: > > ARGV.options do |opts| > opts.on('-L', '--line', ...) { |xx| ... } > end > > Then it should. However, IMO optparse should NOT autovivify -L if I > specify: > > ARGV.options do |opts| > opts.on('--line', ...) { |xx| ... } > end I said latter. From ruby-dev:25048: ~ % cat t require 'optparse' parser = OptionParser.new parser.on('--line') { puts 'opt=--line' } parser.parse! ~ % ruby t -l opt=--line ~ % ruby t --l opt=--line ~ % ruby t -L opt=--line ~ % ruby t --L opt=--line But, thanks for nobu, it seems that optparse.rb was modified after [ruby-dev:25048] was posted. We get following result now: % cat t require 'optparse' parser = OptionParser.new parser.on('--line') { puts 'opt=--line' } parser.parse! % ruby t -L /usr/lib/ruby/1.9/optparse.rb:1440:in `complete': invalid option: -L (OptionParser::InvalidOption) from /usr/lib/ruby/1.9/optparse.rb:1438:in `catch' from /usr/lib/ruby/1.9/optparse.rb:1438:in `complete' from /usr/lib/ruby/1.9/optparse.rb:1297:in `order!' from /usr/lib/ruby/1.9/optparse.rb:1266:in `catch' from /usr/lib/ruby/1.9/optparse.rb:1266:in `order!' from /usr/lib/ruby/1.9/optparse.rb:1346:in `permute!' from /usr/lib/ruby/1.9/optparse.rb:1373:in `parse!' from t:7 From ChangeLog: Sun Dec 5 19:39:17 2004 Nobuyoshi Nakada * lib/optparse.rb (OptionParser::Completion#complete): new parameter to direct case insensitiveness. * lib/optparse.rb (OptionParser#order!): ignore case only for long option. [ruby-dev:25048] Regards, Minero Aoki