From: Devin Mullins Date: 2005-09-26T20:07:51+09:00 Subject: Re: How each class splats Well, you could do this: class B < Array def initialize(i,v) self[0] = @i = i self[1] = @v = v end end But I think your best bet is define your own Collection object with its own #each. Devin Interesting sidenote (endnote?): Operator precedence causes this: self[0], self[1] = @i, @v = i, v To set self[1] = @i, and @v = i, and to return the Array containing self[0], self[1], @v, and v. If you want to do a silly thing like chain parallel assignments, you have to add parens: self[0], self[1] = (@i, @v = i, v) But then again, that's what you get for trying to write code that's painful to read.