Another require question

E

Ed Hardy

I've been learning Ruby for 2 weeks and of course I like it.

However, recently,

1)
'file.open(path)' returns this error in the SciTE editor:

"undefined local variable or method `math' for main:Object (NameError)"

2)
I try to require 'file' and fail at that too, even with an absolute path
to 'file.rb' under the gems folder.

Maybe I need to reinstall Ruby?

Help please.
 
S

Sebastian Hungerecker

Ed said:
file.open(path)' returns this error in the SciTE editor:

"undefined local variable or method `math' for main:Object (NameError)"

That line most certainly does not cause that error. You might want to show the
whole code or if it's a lot of code, the smallest possible example that's
runnable and produces the error.

HTH,
Sebastian
 
E

Ed Hardy

Thanks Sebastian, and apologies for recent goof. Again...

This single line,

file.exist?("c:/xx.txt")

or any file.xxx() command,
when run, produces in the error window:

miscmo.rb:2: undefined local variable or method `file' for main:Object
(NameError)


I reinstalled in windows using the installer ruby186-26.exe. No
improvement.
 
W

William Rutiser

Ed said:
Thanks Sebastian, and apologies for recent goof. Again...

This single line,

file.exist?("c:/xx.txt")

or any file.xxx() command,
when run, produces in the error window:

miscmo.rb:2: undefined local variable or method `file' for main:Object
(NameError)


I reinstalled in windows using the installer ruby186-26.exe. No
improvement.
Try

File.exist?("c:/xx.txt")

exist? is a class method of the class File
 
E

Ed Hardy

Yike. I 'knew it' but forgot, not at the surface of my mind/reading. I
had fallen into a misconception, explained by this correct
interpretation of file handing...

ruby> begin
ruby| file = open("/tmp/some_file", "w")
ruby| # something to do
ruby| ensure
ruby| file.close
ruby| end
 
E

Ed Hardy

Let's assume I know nothing. Though I thought I understood this
dilemma, I'm now lost. I've been studying like crazy, bought a book,
and even have even written a program that pumps out html pages with
webrick, but I am still hung up on some basic items.

For instance, this line fails:

puts math.sqrt(234)

it outputs this error:

"undefined local variable or method `math' for main:Object (NameError)"

this line fails:

f= file.open('c:\cher.bat') # similar error message as above

these lines run OK:

f= open('c:\cher.bat')
d= f.read()
puts d
f.close()

I installed 1.8.6 (path level 111) on XP Windows with the one-click
installer.
 
M

Martin DeMello

Let's assume I know nothing. Though I thought I understood this
dilemma, I'm now lost. I've been studying like crazy, bought a book,
and even have even written a program that pumps out html pages with
webrick, but I am still hung up on some basic items.

For instance, this line fails:

puts math.sqrt(234)

Same issue - class and module names are capitalised in ruby.

Math.sqrt
File.open

etc

martin
 
T

Tim Hunter

Ed Hardy wrote:
(snip)
For instance, this line fails:

puts math.sqrt(234)

it outputs this error:

"undefined local variable or method `math' for main:Object (NameError)"

this line fails:

f= file.open('c:\cher.bat') # similar error message as above
(snip)

In Ruby, case matters. It's Math.sqrt, not math.sqrt, and File.open, not
file.open.

In Ruby, variables that start with an uppercase character are constants,
and the names of modules (like Math) and classes (like File) are
constants.

Variables that start with a lowercase character are just plain
variables.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,073
Latest member
DarinCeden

Latest Threads

Top