[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Does eql? do a deep comparison of objects?

Wes Gamble

12/29/2006 8:25:00 PM

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

--
Posted via http://www.ruby-....

3 Answers

Wes Gamble

12/29/2006 8:31:00 PM

0

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


--
Posted via http://www.ruby-....

Robert Klemme

1/1/2007 4:25:00 PM

0

On 29.12.2006 21:30, Wes Gamble 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

Wes Gamble

1/1/2007 6:16:00 PM

0

Robert Klemme 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


--
Posted via http://www.ruby-....