Brian Schr?der wrote:
> On 19/10/05, eoghan <ruby / redry.net> wrote:
>> Hello
>> Im doing a simple test. I have 2 files:
>> mouse.rb
>> ---------
>> my_string = 'blah'
>>
>> rabbit.rb
>> ---------
>> require 'foo'
>>
>> print my_string
>>
>> eoghanj$ /opt/local/bin/ruby bar.rb
>> bar.rb:3: undefined local variable or method `my_string' for
>> main:Object (NameError)
>>
>> Im simplified my example down to this; and I cant see what im doing
>> wrong... hope its not too stupid.
>> I read this part about irb restrictions, but im not sure it applies?
>> http://www.rubycentral.com/book/irb.html
>> Thanks
>> Eoghan
>>
>>
> 
> Unlike in php or c require and load do not simply replace the
> statement with the file, but are carefull not to introduce any local
> variables. Try the following.
> 
> mouse.rb
> ---
> module AnimalConstants
>   MOUSE_NAME = "Mickey Mouse"
> end
> 
> rabbit.rb
> ---s
> require 'mouse'
> 
> p AnimalConstants::MOUSE_NAME
> 
> Constants and Globals are imported. (Note that you do not need to
> structure your constants using a module, it was just to show this
> effekt.)
> 
> regards,
> 
> Brian

Thanks I understand what you are saying... however consider the 
following example from whys guide (and maybe im missing something here 
again...)
http://www.poignantguide.net/ruby/chapter-4.html#section3

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'
  }
===========================================================

i assume this should be saved to a file too...?
===========================================================
  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

This doesnt work either. For me at least. Any ideas?
Eoghan