Greetings,
I am working on a project and I added command line options. Today, I
took the fateful step in adding the capability to do multiple options in
the program. For some reason, the code, which worked perfectly before
this, now spews out the error:
undefined method "-" for nil:NilClass (NoMethodError)
The code in question is:
dateArr[0] = DateTime.parse(ARGV[1])
Now, this error pops up because ARGV[1] is nil. But if I run the
program :
ruby Hercules.rb -c 2010-04-15
ARGV[1] should be 2010-04-15. What is the problem here?
Thank you,
dlucci
···
--
Posted via http://www.ruby-forum.com/.
It must be something else, cause this works for me:
require 'date'
puts DateTime.parse(ARGV[1])
and calling this as
ruby test.rb -c 2010-04-15
prints the date.
Can you show the full code that errors?
Jesus.
···
On Wed, May 12, 2010 at 11:16 PM, Derril Lucci <derril.lucci@gmail.com> wrote:
Greetings,
I am working on a project and I added command line options. Today, I
took the fateful step in adding the capability to do multiple options in
the program. For some reason, the code, which worked perfectly before
this, now spews out the error:
undefined method "-" for nil:NilClass (NoMethodError)
The code in question is:
dateArr[0] = DateTime.parse(ARGV[1])
Now, this error pops up because ARGV[1] is nil. But if I run the
program :
ruby Hercules.rb -c 2010-04-15
ARGV[1] should be 2010-04-15. What is the problem here?
Hi Derril,
When working with command-line options, you'll have a much better time
working with OptionParser -- it's part of the Ruby standard library:
http://ruby-doc.org/stdlib/libdoc/optparse/rdoc/classes/OptionParser.html
Mat
···
On Wed, May 12, 2010 at 17:16, Derril Lucci <derril.lucci@gmail.com> wrote:
Greetings,
I am working on a project and I added command line options. Today, I
took the fateful step in adding the capability to do multiple options in
the program. For some reason, the code, which worked perfectly before
this, now spews out the error:
undefined method "-" for nil:NilClass (NoMethodError)
The code in question is:
dateArr[0] = DateTime.parse(ARGV[1])
Now, this error pops up because ARGV[1] is nil. But if I run the
program :
ruby Hercules.rb -c 2010-04-15
ARGV[1] should be 2010-04-15. What is the problem here?
Thank you,
dlucci
--
Posted via http://www.ruby-forum.com/\.
Certainly.
opts is an array of Getoptlong type and holds the options and their
requirements.
opts.each do |opt, arg|
case opt
when "--date", "-d"
dateArr[0] = DateTime.parse(ARGV[1])
.
.
.
That is more of the code in question. Hope if helps.
Cheers,
dlucci
···
--
Posted via http://www.ruby-forum.com/.
Derril Lucci wrote:
That is more of the code in question. Hope if helps.
No, but it will help if you can provide a complete, standalone program
which demonstrates the problem. Either write a program from scratch just
to demonstrate the problem, or keep trimming out code from your existing
program until you can no longer demonstrate it.
···
--
Posted via http://www.ruby-forum.com/\.
Figured it out. Turns out, I was checking if ARGV's size was 0, then
trying it. Clearly, if ARGV was 0, there are no options or arguments.
Thus, dateArr[0] is nil and cannot be used for equations. Thanks for
all your help!
Cheers,
dlucci
···
--
Posted via http://www.ruby-forum.com/.