Importing from YAML

I’ve learned that a very quick and easy way to save a Ruby object to a
file is to use YAML e.g.

def saveMyObject
	File.open(self.fileName,"a+") { |f|
		f.write(self.to_yaml)
		f.close
	}
end

However, the article which showed this did not then explain how this
process could be reversed. I assume there must be a an equivalent
simple use of file ‘read’, but a straight forward ‘read’ seems to give
just a string, and I can find no ‘from_yaml’ method whihc would read
YAML-formatted text straight into a Ruby object (and thus re-create that
object originally used to create the YAML file) . I’m sure there must
be a quick and easy way to do this - any suggestions?

Thanks in advance.

Toby R. wrote:

I’ve learned that a very quick and easy way to save a Ruby object to a
file is to use YAML e.g.

YAML#load (or its synonym #parse) loads object(s) from a YAML string.
Have a look at the docs: http://ruby-doc.org/core/classes/YAML.html

Regards,
Jordan

Jordan Callicoat wrote:

YAML#load (or its synonym #parse) loads object(s) from a YAML string.
Have a look at the docs: http://ruby-doc.org/core/classes/YAML.html

Many thanks Jordan. For anyone interested I’ve just given it a go and
the reverse of the above code seems to be quite simply

def LoadMyObject
        myObject = YAML.load_file(self.fileName)
end

Oops, that should be ‘loadMyObject’ of course …

Toby R. wrote:

Jordan Callicoat wrote:

YAML#load (or its synonym #parse) loads object(s) from a YAML string.
Have a look at the docs: http://ruby-doc.org/core/classes/YAML.html

Many thanks Jordan. For anyone interested I’ve just given it a go and
the reverse of the above code seems to be quite simply

def LoadMyObject
myObject = YAML.load_file(self.fileName)
end

On Sep 24, 2006, at 12:04 PM, Toby R. wrote:

        myObject = YAML.load_file(self.fileName)

end

No need to assign to a local variable there, since it goes out of
scope as soon as you leave the method on the next line.

James Edward G. II

On Sep 24, 2006, at 12:12 PM, Toby R. wrote:

Oops, that should be ‘loadMyObject’ of course …

Actually, the Ruby convention is to methods and variables like_this
and classes and modules LikeThis.

James Edward G. II

Toby R. wrote:

I’ve learned that a very quick and easy way to save a Ruby object to a
file is to use YAML e.g.

def saveMyObject
File.open(self.fileName,“a+”) { |f|
f.write(self.to_yaml)
f.close
}
end

No-one mentioned it but the f.close in the File.open block
is not required–the whole idea behind the block is to use
it to close the file automatically after it has executed.