Robert Klemme wrote:

> > if File.exists? path
> >     File.open(path).each do |line|
> > @text.push line.chomp
> >     end
> 
> Btw, you don't close the file handle properly here.

Unless something has changed in 1.8, Pickaxe1 says:

    With no associated block, open is a synonym for File.new . If
    the optional code block is given, it will be passed file as
    an argument, and the file will automatically be closed when
    the block terminates. In this instance, File.open returns nil.

I'm still looking at the rest of your solution.  I'll get back to
the newsgroup soon.
-- 
James B Crigler                                    Voice:  (770)494-2077
C-27J Software Requirements Manager                  Fax:  (770)494-3886
Lockheed Martin Aeronautics Company
D/6B3M  Z/0100         
86 South Cobb Drive        
Marietta GA 30063                      
     "I say, Jerry!  You'd be in a Blazing bad way if recalling to life
     was to become the fashion, Jerry!"          -- A Tale of Two Cities