Forum: Ruby OptionParser can't tell me about non-options on command line

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
C3ba977a99bd79469b06892c5d5a985e?d=identicon&s=25 Alan Partis (alpartis)
on 2008-12-23 21:18
I'd like to have a command line invocation of my ruby script that looks
like the following:

Usage: vmci.rb [options] command args ...

  options:
    -h, -?, --help           generate this usage message
    -l, --log-file FILE      Identifies a log file to use.
    -e, --log-level LOGLEVEL desired level of logging.
    -x                       Bypass display of configuration

  command
    one of the command recognized by vmci.rb

  args
    any necessary arguments associated with the given command

I can't figure out how to get at the "command" and "args" portions of
the command line using OptionParser.  Since a variable number of options
may exist on the command line before the command, it's not intuitive to
me how to know which element of the ARGV array to use, or how to extract
these values via OptionParser.

Can someone give me a little direction?

Thanks much.

________________________________________________________
alan partis
thundernet development group
C3ba977a99bd79469b06892c5d5a985e?d=identicon&s=25 Alan Partis (alpartis)
on 2008-12-23 21:48
Alan Partis wrote:
> Can someone give me a little direction?

Nevermind ... RTFM ... I just went back to pickaxe 3rd edition and found
that the call to OptionParser.parse returns an array containing the
remaining elements from ARGV that weren't processed as options.

________________________________________________________
alan partis
thundernet development group
E0d864d9677f3c1482a20152b7cac0e2?d=identicon&s=25 Robert Klemme (Guest)
on 2008-12-24 12:55
(Received via mailing list)
On 23.12.2008 21:40, Alan Partis wrote:
> Alan Partis wrote:
>> Can someone give me a little direction?
>
> Nevermind ... RTFM ... I just went back to pickaxe 3rd edition and found
> that the call to OptionParser.parse returns an array containing the
> remaining elements from ARGV that weren't processed as options.

And if you use parse! (which is what I generally do) the original array
is adjusted appropriately.  This is important if you want to use ARGF
for example.  My typical pattern is

OptionParser.new do |opts|
   opts.on...
end.parse! ARGV
# now ARGV has only non args left

Kind regards

  robert
This topic is locked and can not be replied to.