Project

General

Profile

Feature #8639

Updated by nobu (Nobuyoshi Nakada) almost 6 years ago

I was fiddling around with Queue the other day and realized it doesn't have an #each method. So I made one: https://github.com/ruby/ruby/pull/361 

 As for why, it makes for a convenient way to build consumer processes: 

   ~~~ruby 
   inq = Queue.new 
   outq = Queue.new 
   doubler = Thread.new do 
     inq.each do |n| 
       outq << n + n 
     end 
   end 
   ~~~ 

 My PR also returns an Enumerator when no block is given, and handles the non_block argument. 

 I'm sure there's some good reason that this method wasn't there already, so feel free to explain. 

 Also, this is my first Ruby feature ticket so please let me know if I'm missing any points of protocol. 

 Thanks!

Back