From: kennethkunz@... Date: 2005-04-15T05:59:35+09:00 Subject: Re: Weaving Arrays Take a look at the SyncEnumerator class from the generator standard library: http://www.ruby-doc.org/stdlib/libdoc/generator/rdoc/index.html This can be used to "weave" two objects of any enumerable class. Not quite what you're looking for... if the collections are of different lengths, nil is weaved-in with the remaining elements from the longer one. It shouldn't be hard to extend the SyncEnumerator class to do what you suggest, though. Example: require 'generator' a = (1..5) b = ('a'..'c') c = SyncEnumerator.new(a,b) c.each { |row| puts row.join("\t") } Output: 1 a 2 b 3 c 4 5 Also: c.to_a => [[1, "a"], [2, "b"], [3, "c"], [4, nil], [5, nil]] Cheers, Ken