GetoptLong usage

Hi,

I'm using Example: http://rubylearning.com/satishtalim/ruby_arrays.html
as a guide to GetoptLong usage. I get the message:

uninitialized constant GetoptLong::OptionalArgument (NameError)

for line 10 of the program listed below (with line 10 flagged). Can
anyone point me to a working example of GetoptsLong usage?

Thanks in Advance,
Richard

# SummarizeBalances.rb
# K:\_Projects\Ruby\_Ruby_Apps\InvestmentSW
# Example: http://rubylearning.com/satishtalim/ruby_arrays.html

require 'GetoptLong'

    puts "Args = " + ARGV.join(", ")

    opts = GetoptLong.new(
  [ "--from", "-f", GetoptLong::OptionalArgument], # Line 10
  [ "--to", "-t", GetoptLong::OptionalArgument],
  [ "--weeks_until", "-w", GetoptLong::OptionalArgument]
    )

    # Process the arguments
    opts.each { |opt, arg|
  puts %{%s => "%s"} % [opt, arg]
    }
    rem_args = ARGV.join(", ")
    puts "Remaining args = %s" % [rem_args] if rem_args

As you can see from the link you posted, the constant name is
GetoptLong::OPTIONAL_ARGUMENT, not GetoptLong::OptionalArgument. However, I'd
consider using OptionParser (which, like GetoptLong is included in the ruby
standard library) rather than GetoptLong, since it provides a much more ruby-
oriented interface.

Stefano

···

On Thursday 30 September 2010, RichardOnRails wrote:

>Hi,
>
>I'm using Example: http://rubylearning.com/satishtalim/ruby_arrays.html
>as a guide to GetoptLong usage. I get the message:
>
>uninitialized constant GetoptLong::OptionalArgument (NameError)
>
>for line 10 of the program listed below (with line 10 flagged). Can
>anyone point me to a working example of GetoptsLong usage?
>
>Thanks in Advance,
>Richard
>
># SummarizeBalances.rb
># K:\_Projects\Ruby\_Ruby_Apps\InvestmentSW
># Example: http://rubylearning.com/satishtalim/ruby_arrays.html
>
>require 'GetoptLong'
>
> puts "Args = " + ARGV.join(", ")
>
> opts = GetoptLong.new(
> [ "--from", "-f", GetoptLong::OptionalArgument], # Line 10
> [ "--to", "-t", GetoptLong::OptionalArgument],
> [ "--weeks_until", "-w", GetoptLong::OptionalArgument]
> )
>
> # Process the arguments
> opts.each { |opt, arg|
> puts %{%s => "%s"} % [opt, arg]
> }
> rem_args = ARGV.join(", ")
> puts "Remaining args = %s" % [rem_args] if rem_args

> >Hi,
> >
> >I'm using Example:http://rubylearning.com/satishtalim/ruby_arrays.html
> >as a guide to GetoptLong usage. I get the message:
> >
> >uninitialized constant GetoptLong::OptionalArgument (NameError)
> >
> >for line 10 of the program listed below (with line 10 flagged). Can
> >anyone point me to a working example of GetoptsLong usage?
> >
> >Thanks in Advance,
> >Richard
> >
> ># SummarizeBalances.rb
> ># K:\_Projects\Ruby\_Ruby_Apps\InvestmentSW
> ># Example:http://rubylearning.com/satishtalim/ruby_arrays.html
> >
> >require 'GetoptLong'
> >
> > puts "Args = " + ARGV.join(", ")
> >
> > opts = GetoptLong.new(
> > [ "--from", "-f", GetoptLong::OptionalArgument], # Line 10
> > [ "--to", "-t", GetoptLong::OptionalArgument],
> > [ "--weeks_until", "-w", GetoptLong::OptionalArgument]
> > )
> >
> > # Process the arguments
> > opts.each { |opt, arg|
> > puts %{%s => "%s"} % [opt, arg]
> > }
> > rem_args = ARGV.join(", ")
> > puts "Remaining args = %s" % [rem_args] if rem_args

As you can see from the link you posted, the constant name is
GetoptLong::OPTIONAL_ARGUMENT, not GetoptLong::OptionalArgument. However, I'd
consider using OptionParser (which, like GetoptLong is included in the ruby
standard library) rather than GetoptLong, since it provides a much more ruby-
oriented interface.

Stefano

Hi Stefano,

Excellent response.

As you can see ...

Admittedly, I did see the syntax in the example. What I didn't see,
alas, was the precise option I wanted to use. By time I clicked my
SciTE editor, thus overlaying the example, I forgot the syntax.
Remembering the words was all I could muster. Sad tale :slight_smile:

OptionParser

Looks good, especially the comprehensive example.

Best wishes,
Richard

···

On Sep 30, 10:38 am, Stefano Crocco <stefano.cro...@alice.it> wrote:

On Thursday 30 September 2010, RichardOnRails wrote: