require

P

Piet Versteegen

I am using require in two different ways and they both don't work.
In case #1 I use it to read a file with a code snippet. The file is
located in the same directory. The code snipped defines an array
called `code_words'. When trying to print it it says"
"undefined local variable or method `code_words' for main:Object
(NameError)"

In the second case I have installed rubycoca and I'm trying to run the
sample problem. I has a "require osx/cocoa" statement. The error
message I get is "in `require': no such file to load -- osx/
cocoa (LoadError)"

Searching the Internet I found that other people have the same second
problem, but no answer was found on how to solve it.

Can anyone help?

Thanks ahead of time.
 
S

Steve Martin

Are you defining the code_words variable as a local or instance
variable. You should do:

bash> cat code.rb
@code_words = [ 'word1', 'word2' ]

bash> cat word.rb
#!/usr/bin/env ruby

require 'code'
@code_words += [ 'word3' ]
puts @code_words

bash> ruby word.rb
word1
word2
word3
 
C

ChrisH

Piet said:
I am using require in two different ways and they both don't work.
In case #1 I use it to read a file with a code snippet. The file is
located in the same directory. The code snipped defines an array
called `code_words'. When trying to print it it says"
"undefined local variable or method `code_words' for main:Object
(NameError)"

Be easier to answer if you provided some code.

The issue is the local defined in the external file is not accessable
in the scope where it is required. You can make the array global (call
it '$code_words'), or a constant ('CODE_WORDS') or put it inside a
module/class and access it appropriately.

In the second case I have installed rubycoca and I'm trying to run the
sample problem. I has a "require osx/cocoa" statement. The error
message I get is "in `require': no such file to load -- osx/
cocoa (LoadError)"

Searching the Internet I found that other people have the same second
problem, but no answer was found on how to solve it.
That should just be a matter of ensuring the path to the osx dir is in
the library path.
You can speciy the path in the RUBYLIB environment variable, or on the
ruby command line using -I or in your code by adding the path to $:

Cheers
Chris
 

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,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top