> @myModel = Model.new
> @myData   = DataObject.new
>
> newModel = @myData.generate_new_model(@myModel)
>
>
> def generate_new_model(modelSource)
>     outputModel = Model.new

So far, so good.  At the minute, outputModel references a brand new  
Model.

>     outputModel = modelSource

Now, however, it references the same model as modelSource.  Oops.

>     outputModel.values = "new values"

And here you've changed the values of the Model referenced by  
outputModel and modelSource.

>     outputModel
> end


Am I right in guessing that you're trying to put a copy of  
modelSource into outputModel?  If so, you might want to take a look  
at this:

http://www.rubygarden.org/ruby?Make_A_Deep_Copy_Of_An_Object

Depending on the structure of the Model class, it might be better to  
give it its own copy method.

matthew smillie.