Feature #709: Enumerator#+
http://redmine.ruby-lang.org/issues/show/709

Author: Brian Candler
Status: Open, Priority: Low
Category: core, Target version: 1.9.x

Enumerators could be directly composable:

class Enumerator
  def +(other)
    Enumerator.new do |y|
      each { |e| y << e }
      other.each { |e| y << e }
    end
  end
end

if __FILE__ == $0
  a = (1..3).to_enum + (10..12).to_enum + (17..20).to_enum
  a.each { |i| puts i }
end

The only problem I can see here is that this might open the floodgates to requests for more methods such as & and |, and it's not clear how those would behave. (Personally I'd go for a merge which compares the head items from each of the operands, which assumes that the operands are already in sorted order, but others may disagree)


----------------------------------------
http://redmine.ruby-lang.org