38ae064b8a
Sam Ruby has been doing a bang-up job fixing the bugs in REXML. Who knows when these improvements will trickle down to vendor distributions of Ruby. In the meantime, let's bundle the latest version of REXML with Instiki. We check the version number of the bundled REXML against that of the System REXML, and use whichever is later.
33 lines
685 B
Ruby
33 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
|