On Thu, 9 Sep 2004 16:38:07 +0900, Charles Hixson
<charleshixsn / earthlink.net> wrote:
> I want to have a class which occasionally updates a file, but I want to
> ensure that it always flushes it's data to the file before the program
> quits.
> 
> The class is called Words
> 
> What's the best approach to take here?  I could just continually run a
> flush cycle, but that seems an awful waste of resources, I'd rather
> batch the updates, and only flush occasionally.
> 
> class    Words
> 
>    def    initialize    ()
>       @@words    =    Hash.new
>       @@words.default    =    nil
>       @@wtable    =    WordTable.instance      #<<<=================
>       @@maxWord    =    @@wtable.maxWord
>    end    #    initialize
> ....
> end   #   Words
> 
> WordTable is a singleton class, and it's the one that does the actual
> writing, but it needs to get the data to do the updates from Words.
> 
> I'm considering:
>     def initialize ()
>          ...
>          ObjectSpace.define_finalizer(@@words, proc { flush })
> 
> But I don't know how to evaluate whether it's a good idea or not...or
> even how to tell afterwards (presuming it doesn't throw a "compile-time"
> error).

Perhaps an END {} block?

-austin
-- 
Austin Ziegler * halostatue / gmail.com
               * Alternate: austin / halostatue.ca
: as of this email, I have [ 3 ] Gmail invitations