2010-08-02 8 views
5

¿Alguien tiene algún ejemplo de trabajo de EM :: Iterator? Los únicos ejemplos que puedo encontrar parecen ser copias de (o punto de vuelta a):Ejemplos de trabajo de EM :: Iterator

http://yardoc.org/docs/eventmachine-eventmachine/EventMachine/Iterator

que aún no hay casos de EM :: iterador en rdoc de EventMachine, así que no estoy seguro de si es una clase antigua que ha sido eliminada o no. Yo por lo general sale el siguiente error al intentar usar el EM :: iterador:

NameError: EventMachine constante sin inicializar :: iterador

Gracias!

Respuesta

6

El problema es que la última versión de EventMachine lanzada es 0.12.10, que ahora tiene 10 meses. EM::Iterator parece haberse agregado a la base de código después de esa versión; para utilizarlo, necesitarás usar el development version of EventMachine.

A continuación trabajó para mí:

$ git clone git://github.com/eventmachine/eventmachine.git 
$ cd eventmachine 
$ irb -Ilib -reventmachine 
irb(main):001:0> EM.run do 
irb(main):002:1* EM::Iterator.new(0..10, 2).each do |num, iter| 
irb(main):003:2*  puts num 
irb(main):004:2>  EM.add_timer(1) { iter.next } 
irb(main):005:2> end 
irb(main):006:1> end 
... 

También hay algunas diapositivas relacionadas con EM::Iterator en excelente presentación de Aman Gupta EventMachine: scalable non-blocking i/o in ruby, páginas 46-50.