From: George Moschovitis Date: 2005-11-16T21:42:12+09:00 Subject: Re: YAML on 1.8.3 question Ehm, I forgot to tell you that the original object does not exist in the current context. so, o = YAML.load does not yield an object. -g. On 11/16/05, Mauricio Fern�ndez wrote: > On Wed, Nov 16, 2005 at 08:53:08PM +0900, George Moschovitis wrote: > > Hello all, > > > > I have a yaml file that I parse like this > > > > yaml = YAML.parse(yaml_str) > > > > the 'yaml_str' variable holds the serialized version of an Object. > > Lets say this object hase 2 attributes, 'title' and 'body'. > > > > How can I access them from the 'yaml' variable. Ie I want an imaginary > > method 'lookup': > > > > yaml.lookup['title'] # => returns the title value. > > require 'yaml' > o = Object.new > o.instance_eval{ @title = "foo"; @body = "bar" } > s = YAML.dump(o) # => "!ruby/object \nbody: bar\ntitle: foo\n" > > # for instance > def add_lookup(obj) > def obj.lookup(x); instance_variable_get "@#{x}" end > end > > o2 = YAML.load(s) > add_lookup(o2) > o2.lookup "title" # => "foo" > o2.lookup "body" # => "bar" > [RUBY_VERSION, RUBY_RELEASE_DATE] # => ["1.8.3", "2005-09-24"] > > -- > Mauricio Fernandez > > -- http://www.gmosx.com http://www.navel.gr http://www.nitrohq.com