When I try to use chomp to get user input, I get this error:
private method `chomp' called for nil:NilClass (NoMethodError)
from d:/scripts/ruby/fix1.rb:82:in `run'
from d:/scripts/ruby/fix1.rb:128
When I use it in irb, however it works. Anyone have any ideas what I
might be missing here?
Thanks....
···
--
Posted via http://www.ruby-forum.com/.
Peter Vanderhaden wrote:
When I try to use chomp to get user input
You can't get user input with chomp. The only thing you get from chomp is a
version of the string you called it on with trailing character removed.
private method `chomp' called for nil:NilClass (NoMethodError)
Yes, there is no chomp method for nil. You need to call chomp on a String. If
you thought that you were calling it on a String, you were thinking wrong.
You should look into that.
···
--
NP: Anathema - Balance
Jabber: sepp2k@jabber.org
ICQ: 205544826
How are you using it in the program? Are you using gets.chomp? Can you
show a code sample?
Peter Vanderhaden wrote:
···
When I try to use chomp to get user input, I get this error:
private method `chomp' called for nil:NilClass (NoMethodError)
from d:/scripts/ruby/fix1.rb:82:in `run'
from d:/scripts/ruby/fix1.rb:128
When I use it in irb, however it works. Anyone have any ideas what I
might be missing here?
Thanks....
--
Posted via http://www.ruby-forum.com/.
Douglas,
Here's the method I'm using:
def checkChange
puts "Do you want to change something else (y/N): "
changeIt = gets.chomp
if changeIt =~ /^[yY]/
puts "Enter string to change: "
before = gets.chomp
puts "Enter new string: "
after = gets.chomp
puts "Global change? (N/y): "
global = gets.chomp
end
end # End checkChange method.
Douglas Greenshields wrote:
···
How are you using it in the program? Are you using gets.chomp? Can you
show a code sample?
Peter Vanderhaden wrote:
When I try to use chomp to get user input, I get this error:
private method `chomp' called for nil:NilClass (NoMethodError)
from d:/scripts/ruby/fix1.rb:82:in `run'
from d:/scripts/ruby/fix1.rb:128
When I use it in irb, however it works. Anyone have any ideas what I
might be missing here?
Thanks....
--
Posted via http://www.ruby-forum.com/.
Sebastian,
Right you are! When I did the original post, I screwed it up. I know
chomp doesn't get user input, I was using it with gets, and it didn't
work. I've got to do a better job of proofreading before I hit submit.
Sorry!
Sebastian Hungerecker wrote:
···
Peter Vanderhaden wrote:
When I try to use chomp to get user input
You can't get user input with chomp. The only thing you get from chomp
is a
version of the string you called it on with trailing character removed.
private method `chomp' called for nil:NilClass (NoMethodError)
Yes, there is no chomp method for nil. You need to call chomp on a
String. If
you thought that you were calling it on a String, you were thinking
wrong.
You should look into that.
--
Posted via http://www.ruby-forum.com/.
Douglas:
I forgot to mention that the puts command outputs the prompt to the
screen, but the program never pauses to give the user a chance to enter
anything for an answer. I'm assuming that's why the .chomp part doesn't
work. The first thing I need to do is figure out why gets isn't causing
the program to pause to accept the user input.
Thanks,
PV
Peter Vanderhaden wrote:
···
Douglas,
Here's the method I'm using:
def checkChange
puts "Do you want to change something else (y/N): "
changeIt = gets.chomp
if changeIt =~ /^[yY]/
puts "Enter string to change: "
before = gets.chomp
puts "Enter new string: "
after = gets.chomp
puts "Global change? (N/y): "
global = gets.chomp
end
end # End checkChange method.
Douglas Greenshields wrote:
How are you using it in the program? Are you using gets.chomp? Can you
show a code sample?
Peter Vanderhaden wrote:
When I try to use chomp to get user input, I get this error:
private method `chomp' called for nil:NilClass (NoMethodError)
from d:/scripts/ruby/fix1.rb:82:in `run'
from d:/scripts/ruby/fix1.rb:128
When I use it in irb, however it works. Anyone have any ideas what I
might be missing here?
Thanks....
--
Posted via http://www.ruby-forum.com/.
Peter Vanderhaden wrote:
Douglas:
I forgot to mention that the puts command outputs the prompt to the
screen, but the program never pauses to give the user a chance to enter
anything for an answer.
Are you by any chance running the script with any command line arguments?
That would cause Kernel#gets to read from disk instead of from stdin which
might explain the behaviour you're experiencing.
HTH,
Sebastian
···
--
NP: In Flames - Black & White
Jabber: sepp2k@jabber.org
ICQ: 205544826
Yes, as you imply, it's an issue with gets, not with chomp. The method
you posted looks pretty textbook - if gets can work, then chomp will
work. For some reason it looks like gets is not pausing the script
application and just returning nil.
···
--
Posted via http://www.ruby-forum.com/.
Douglas Greenshields wrote:
For some reason it looks like gets is not pausing the script
application and just returning nil.
gets is reading from the file, that's been passed as a command line argument,
and returning nil because it's empty.
···
--
NP: Moonsorrow - Unohduksen lapsi
Jabber: sepp2k@jabber.org
ICQ: 205544826