From: Daniel Sheppard Date: 2005-12-20T07:57:11+09:00 Subject: Re: Point an element in Hash Object Oh... and your actual problem is that the HashReference object isn't actually getting the to_yaml call - it's passing that through to the wrapped object, which writes itself out in full. You'll need to add to_yaml (or is it some other method? Check the YAML docs) to the methods that aren't removed. (instance_methods - ["__send__", "__id__","to_yaml"]).each {|m| undef_method m} > -----Original Message----- > From: Daniel Sheppard > Sent: Tuesday, 20 December 2005 9:10 AM > To: ruby-talk ML > Subject: Re: Point an element in Hash Object > > > This is ok... but i have a question. > > If i dump the hash into a YAML file, then when i load it, the > > reference > > is lost and there are only copies of the same values. > > > > How can I mantain that reference when I dump/load the YAML file? > > > You can't serialize procs (well... you can, sort of, but it's best not > to think about it). > > So, you'll need to make a more specific Reference class: > > class HashReference > instance_methods.each {|m| undef_method m unless /__.*__/ === m} > def initialize(hash, key) > @hash = hash > @key = key > end > def method_missing(*args, &block) > @hash[@key].send(*args, &block) > end > end ##################################################################################### This email has been scanned by MailMarshal, an email content filter. ##################################################################################### ##################################################################################### This e-mail message has been scanned for Viruses and Content and cleared by NetIQ MailMarshal #####################################################################################