Versioned objects

rolo wrote:

I am looking at versioning of objects. Objects comprise of
valuetype attributes, references to other objects and few
set/unset methods.
Objects’s attributes can change in value. Once their value is
changed, this is a new version. I should be able to go back
to last version (i.e.
restore the previous attribute value.) In case the attributes
refers to some other versioned object( and like that for n
depth) I should be able to restore.

set/unset are specifics, where restore means calling unset method.

What can be good strategies for implementing this.

You may want to check out Transaction::Simple to see if that covers your
needs. I have not yet had time to create a block form of
Transaction::Simple, but I will be doing so at some point. You can
probably do what you want with named transactions (names can be any
object except nil) so that you can revert to a particular version at any
given point in time.

-austin

···


austin ziegler * austin.ziegler@evault.com

Sorry for goofing up with subject. But you could read my mind for the
subject line.

Can you point me to certain docs that discuss different approaches etc…?
even keywords to look for will be helpful.

meanwhile I am looking into Transaction::Simple

regards,
rolo

···

-----Original Message-----
From: Austin Ziegler [mailto:Austin.Ziegler@evault.com]
Sent: Tuesday, May 11, 2004 9:34 PM
To: ruby-talk ML
Subject: Re: versioned objects

rolo wrote:

I am looking at versioning of objects. Objects comprise of
valuetype attributes, references to other objects and few
set/unset methods.
Objects’s attributes can change in value. Once their value is
changed, this is a new version. I should be able to go back
to last version (i.e.
restore the previous attribute value.) In case the attributes
refers to some other versioned object( and like that for n
depth) I should be able to restore.

set/unset are specifics, where restore means calling unset method.

What can be good strategies for implementing this.

You may want to check out Transaction::Simple to see if that covers your
needs. I have not yet had time to create a block form of
Transaction::Simple, but I will be doing so at some point. You can
probably do what you want with named transactions (names can be any
object except nil) so that you can revert to a particular version at any
given point in time.

-austin

austin ziegler * austin.ziegler@evault.com