Does eql? do a deep comparison of objects?

If I have two objects A and B where each is of the same type but have
arbitrarily complex object graphs, will the result of A eql? B be false
if ANY part of the object graph differs, no matter how deep it is?

In my specific case, A and B are ActiveRecord objects with lots of
“has_many” dependencies.

Thanks,
Wes

Sorry I wasted a post. I just tried this and found that eql? does not
compare all the way down the object tree.

Does anyone know of a generic method for doing this?

Wes

On 29.12.2006 21:30, Wes G. wrote:

Sorry I wasted a post. I just tried this and found that eql? does not
compare all the way down the object tree.

There is no general implementation defined for eql? - every class
decides for itself how it is done. In case a class does not implement
it it will inherit eql? from any of its superclasses.

Does anyone know of a generic method for doing this?

Well, you could try to traverse both object graphs and compare each
instance. But this is pretty tedious.

What kind of problem are you trying to solve?

Kind regards

robert

Robert K. wrote:

What kind of problem are you trying to solve?

Kind regards

robert

In a Rails app, I was trying to determine whether or not to take a
particular action based on whether or not an object had been changed via
a form. I ended up doing it in an object-specific way and it was fine.

Thanks for the help,
Wes