Retro thanks to all who helped me with my last post.  I'm certainly more 
comfortable with Ruby now than then, but still a newbie as the following 
will surely demonstrate.

Below, you can see that I'm checking command-line arguments to the 
program for various conditions.  Unfortunately, because the args are 
stored as strings, when I convert them via to_i, empty and non-numerical 
strings become 0.  0 is an acceptable element in this program, therefore 
I can't use it to test for invalid input.  I've worked around this (sort 
of), by creating two sets of variables for the arguments (one set as 
strings, one set as integers).  Unfortunately, this complicates the 
code, and more importantly, leaves me stumped concerning how to test for 
non-numeric values.

So, the program does what I want, except when the args are non-numeric 
strings, and the code seems uglier than it ought to be.

Thanks in advance,

-ELf

def gen_chart(max)
  x=0
  y=0
  local_chart = Array.new
  while x<=max
    y+=x
    local_chart[x]=y
    x+=1
  end
  local_chart
end

arg0 = ARGV[0]
arg1 = ARGV[1]

arg0i = ARGV[0].to_i
arg1i = ARGV[1].to_i

if arg0.nil? or (arg0i < 0) or (arg1i < 0)
  #print usage
  print <<-EOS

No args, or bad args!

Usage: #$0 [maxvalue]
       #$0 [minvalue] [maxvalue]
  EOS
elsif arg1.nil?
  #do chart to arg0, print last pair
  chart = gen_chart(arg0i)
  puts arg0i.to_s + ": " + chart[arg0i].to_s
else
  #do chart to arg1, print pairs from arg0 to last
  chart = gen_chart(arg1i)
  x=arg0i
  y=arg1i
  while x<=y
    puts x.to_s + ": " + chart[x].to_s
    x+=1
  end
end

-- 
Posted via http://www.ruby-forum.com/.