[Todd Breiholz <talanb / gmail.com>, 2006-01-08 04.15 CET]
> I must be missing something...
> 
> I've got the following class method. The problem is the line that reads objs
> << self.new(obj). The first time through the loop, the objs array looks
> correct. After the second iteration however, the objs array contains 2
> copies of the second object created.
> 
> Here is the output from the method:
> 
> "00630000003BqXwAAK"
> [00630000003BqXwAAK]
> "00630000003awD3AAI"
> [00630000003awD3AAI, 00630000003awD3AAI]
> 
> and here is the method:
> 
>     def FindAll(criteria)
>       self.GetAllFields if (defined? @@attribs) == nil
>       result = @@connection.query([:query, "select #{@@attribs} from #{
> self.to_s} where #{criteria}"])
>       objs = []
>       result.queryResponse.result.records.each do |obj|
>         p obj.Id
>         objs << self.new(obj)
Or, more probably ^^^^^^^^ here is the problem :). Try self.class.new if you
want a new object of the same class as self.

>         p objs
>       end
>       objs
>     end
> 
> Thanks!
> 
> Todd Breiholz