Imported File#ftype spec from rubyspecs.
[rbx.git] / lib / rexml / syncenumerator.rb
blob955e006cb2215503f430d537078463e65527ffbd
1 module REXML
2   class SyncEnumerator
3     include Enumerable
5     # Creates a new SyncEnumerator which enumerates rows of given
6     # Enumerable objects.
7     def initialize(*enums)
8       @gens = enums
9       @biggest = @gens[0]
10       @gens.each {|x| @biggest = x if x.size > @biggest.size }
11     end
13     # Returns the number of enumerated Enumerable objects, i.e. the size
14     # of each row.
15     def size
16       @gens.size
17     end
19     # Returns the number of enumerated Enumerable objects, i.e. the size
20     # of each row.
21     def length
22       @gens.length
23     end
25     # Enumerates rows of the Enumerable objects.
26     def each
27       @biggest.zip( *@gens ) {|a|
28         yield(*a[1..-1])
29       }
30       self
31     end
32   end
33 end