[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Real Beginner Question - (NameError

CSZ

3/21/2007 3:49:00 AM

Hi !
I'm going my way through a Ruby online tutorial right now and i have
following problem:

I have two files. File one:

wordlist.rb

code_words = {
'starmonkeys' => 'Phil and Pete, those prickly chancellors of the New
Reich',
'catapult' => 'chucky go-go', 'firebomb' => 'Heat-Assisted Living',
'Nigeria' => "Ny and Jerry's Dry Cleaning (with Donuts)",
'Put the kabosh on' => 'Put the cable box on'
}

makeSwamp.rb

#!/usr/bin/env ruby

require 'wordlist'

# Get evil idea and swap in code words
print "Enter your new idea: "
idea = gets
code_words.each do |real, code|
idea.gsub!( real, code )
end

# Save the jibberish to a new file
print "File encoded. Please enter a name for this idea: "
idea_name = gets.strip
File::open( "idea-" + idea_name + ".txt", "w" ) do |f|
f << idea
end

When i execute the makeSwamp.rb file i can enter a "new idea" but than i
get:

/makeSwamp.rb:8: undefined local variable or method `code_words' for
main:Object (NameError)

(line 8 is: code_words.each do |real, code| )

Why ??? I've run kdiff and its exactly as in the tutorial... Maybe its
just to late for me..

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

2 Answers

Harold Hausman

3/21/2007 4:01:00 AM

0

On 3/21/07, CSZ <chschwar@uos.de> wrote:
> Hi !
> I'm going my way through a Ruby online tutorial right now and i have
> following problem:
>

Hello. There is an unfortunate error in the design of that example.
This exact question comes up from time to time on this list. (:

I searched the archives[1] for "Heat-Assisted Living" and came up with
this thread:
http://rubyu...

It looks to have some good answers in it.

Hope that helps,
-Harold

[1]: http://groups.google.com/group/comp.lang.r...

Eric I.

3/21/2007 4:04:00 AM

0

On Mar 20, 11:49 pm, CSZ <chsch...@uos.de> wrote:
> When i execute the makeSwamp.rb file i can enter a "new idea" but than i
> get:
>
> /makeSwamp.rb:8: undefined local variable or method `code_words' for
> main:Object (NameError)
>
> (line 8 is: code_words.each do |real, code| )
>
> Why ??? I've run kdiff and its exactly as in the tutorial... Maybe its
> just to late for me..

When you require (or load) a file, the local variables are not brought
in. Try changing code_words to a global variable by making it
"$code_words" (in both files). Or if you think it's more appropriate,
change it to a constant by making it "CodeWords" in both files.

Eric

Are you interested in on-site Ruby training that uses well-designed,
real-world, hands-on exercises? http://Lea...