--001636e0a77726f789046ad29835
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Hi,I'm using ruby 1.87. this problem seems to be the block context bug for
1.8x, in the results array, I always got the same value, which is the last
return value of the iteration .
I've got an object, which has multiple states. when I call each_state, I'm
actually changing the state.

results  ]
an_object.each_state do |the_object|
    #some manipulations
    results << the_object
end

the each_state method looks like:

def each_state
    #blah blah, change the current state
    yield(self)   # I also tried self.dup, but it didnt work either.
end

anyone knows how to solve this?
TIA

Regards,

Peng Zuo

--001636e0a77726f789046ad29835--