From: "knu (Akinori MUSHA)" Date: 2013-09-03T15:52:30+09:00 Subject: [ruby-core:56981] [ruby-trunk - Feature #8572] Fiber should be a Enumerable Issue #8572 has been updated by knu (Akinori MUSHA). =begin We have Generator in 1.8 and Enumerator in 1.9+ that work exactly the same as the given example. # In ruby 1.8, require 'generator' and call Generator.new instead enum = Enumerator.new { |g| g.yield 3 g.yield 2 g.yield 1 g.yield 0 } # internal style enum.each do |x| puts x end # external style while enum.next? puts enum.next end One of the reasons why Fiber was originally introduced was to reimplement Generator of ruby 1.8 in better and faster way. Using Fiber as implementation technique, Generator was successfully integrated into Enumerator in Ruby 1.9. So, Fiber is there as a low-level API for implementing Enumerator in the first place. It does not make much sense to me to add a non-primitive feature to Fiber just to make it work like Enumerator. I think we need a real use case that would explain why Fiber should be used that way. =end ---------------------------------------- Feature #8572: Fiber should be a Enumerable https://bugs.ruby-lang.org/issues/8572#change-41559 Author: mattn (Yasuhiro Matsumoto) Status: Open Priority: Normal Assignee: ko1 (Koichi Sasada) Category: Target version: I'm thinking that Fiber should be a Enumerable. it's easy and reasonable to implement. https://gist.github.com/mattn/5874949 -- http://bugs.ruby-lang.org/