mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
1448668244
<http://intertwingly.net/blog/2007/12/31/Porting-REXML-to-Ruby-1-9> [ruby-core:14639] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
32 lines
685 B
Ruby
32 lines
685 B
Ruby
module REXML
|
|
class SyncEnumerator
|
|
include Enumerable
|
|
|
|
# Creates a new SyncEnumerator which enumerates rows of given
|
|
# Enumerable objects.
|
|
def initialize(*enums)
|
|
@gens = enums
|
|
@length = @gens.collect {|x| x.size }.max
|
|
end
|
|
|
|
# Returns the number of enumerated Enumerable objects, i.e. the size
|
|
# of each row.
|
|
def size
|
|
@gens.size
|
|
end
|
|
|
|
# Returns the number of enumerated Enumerable objects, i.e. the size
|
|
# of each row.
|
|
def length
|
|
@gens.length
|
|
end
|
|
|
|
# Enumerates rows of the Enumerable objects.
|
|
def each
|
|
@length.times {|i|
|
|
yield @gens.collect {|x| x[i]}
|
|
}
|
|
self
|
|
end
|
|
end
|
|
end
|