comparing and copying objects

Hi,

I wonder if there is a quick way to do this.

companyA has 2 employees "a", "b"

companyB has 3 employees "a", "b", "c"

I basically want to merge companyA employess with companyB employees so
when i look at companyA the employees will equal "a", "b", "c"

i know i could do something like companyA.employees = companyB.employees
but this would just overwrite companyA employees so if companyA had more
employees than companyB i would lose the employees companyA had that
companyB didnt.

I think companyA.employees << companyB.employees would just mash them
together and give me duplicates.

The only other way i can think off is a nasty double loop that compares
each object 1 by 1 and then starts again going through the process.

JB

what about using the "+" and "uniq!" methods (associations are just
arrays after all)?

companyA = (companyA.employees + companyB.employees).uniq!

This may be brittle because I'm counting on the fact that the
association is an array.

should be:

companyA.employees = (companyA.employees + companyB.employees).uniq!

what about using the "+" and "uniq!" methods (associations are just
arrays after all)?

companyA = (companyA.employees + companyB.employees).uniq!

This may be brittle because I'm counting on the fact that the
association is an array.

It also won't work as uniq! returns nil if there are no duplicates.
Use uniq instead.
There's also the | operator
irb(main):005:0> [1,2,3]|[1,2,3,4,5]
=> [1, 2, 3, 4, 5]

Fred

Thanks for correcting the "un. The | operator is more succinct. Thanks
Fred.