Like a lot of people I’m new to Ruby and I’m trying to do something I
thought would be pretty simple. I want the user to give me input in the
form of a filename and then subsequently open the file. Here is what I
have so far:
class FileHandler
def initialize() @fileToParse = fileToParse #I get user input in the form of gets in #another class.
if File.new(fileToParse)
puts ‘File successfully opened.’
else
puts ‘File failed to open.’
Kernel.exit
end
end
end
However, that won’t work. Doing something like
File.new(“C:/Users/grant/Desktop/test.txt”) works just fine though. The
way I’m currently doing it throws the following error:
Like a lot of people I’m new to Ruby and I’m trying to do something I
thought would be pretty simple. I want the user to give me input in the
form of a filename and then subsequently open the file. Here is what I
have so far:
def initialize() @fileToParse = fileToParse #I get user input in the form of gets in #another class.
Are you removing the newline at the end of the string from gets ?
| if File.new(fileToParse)
|File.new(“C:/Users/grant/Desktop/test.txt”) works just fine though. The
|way I’m currently doing it throws the following error:
|
|F:/Programming/eclipseWorkspace/CSE_655/file_handler.rb:8:in
|`initialize’: Invalid argument - C:/Users/grant/Desktop/test.txt
|(Errno::EINVAL)
Your code seems mostly correct, but I don’t exactly understand what
fileToParse is. Is it a call to a fileToParse method (which in turn uses
geets
to retrieve the file name) or a variable? In the first case, I guess the
if
line should be
if File.new(@fileToParse) #note the @
Otherwise, the user will be asked to enter the file name twice.
If fileToParse is a variable, instead, where does it come from?
Also, it would be useful if you pointed out which is line 8 on your
program.
If I assume the first line is
class FileHandler
then line 8 is ‘else’, which I doubt could give you such an error.
Thank you so much Hassan, that fix seemed so obvious after you said it
lol. I just changed line 8 to if File.new(fileToParse.delete “\n”) and
it worked just fine. Not sure if I should ask this here but just out of
curiosity does the debugger for 1.9.2 not work? I’m running the eclipse
plug in right now and whenever I try to debug it just vomits all over
itself. Browsed around the web and saw it mentioned a couple of times.
Like a lot of people I’m new to Ruby and I’m trying to do something I
thought would be pretty simple. I want the user to give me input in the
form of a filename and then subsequently open the file. Here is what I
have so far:
class FileHandler
def initialize() @fileToParse = fileToParse #I get user input in the form of gets in
Usually after gets you want to use strip to remove all leading
and trailing whitespace:
file_name = gets.strip
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.