From: James Edward Gray II Date: 2006-12-02T04:14:32+09:00 Subject: Re: Simple iteration in a function problem On Dec 1, 2006, at 12:57 PM, Blake Miller wrote: > i'm trying to do this, and I'm stuck I've tried to answer your question and Rubyify your code a bit: class YHolder def initialize @ys = Array.new end def add_y(y) @ys << y end alias_method :<<, :add_y def fetch_by_id(id) @ys.find { |y| y.object_id == id } end alias_method :[], :fetch_by_id end class Y; end class X < Y; end holder, ids = YHolder.new, Array.new 10.times do new_y_or_x = [Y, X][rand(2)].new ids << new_y_or_x.object_id holder << new_y_or_x end p holder # show the collection # pick one by id pick = ids[3] p pick p holder[pick] # >> #, #, #, # >> #, #, #, # >> #, #, #, # >> #]> # >> 988178 # >> # __END__ Hope that helps. James Edward Gray II