2010-08-02 12 views
5

Qualcuno ha qualche esempio funzionante di EM :: Iterator? Gli unici esempi che posso trovare sembrano essere copie di (o punto di nuovo a):Esempi di funzionamento di EM :: Iterator

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

non vedo tutte le istanze di EM :: Iterator in rdoc di EventMachine, quindi non sono sicuro se è una vecchia classe che è stata rimossa o meno. Io generalmente ottengo il seguente errore quando provo ad usare EM :: Iterator:

NameError: non inizializzata costante EventMachine :: Iterator

Grazie!

risposta

6

Il problema è che l'ultima versione di EventMachine rilasciata è 0.12.10, che ora ha 10 mesi. EM::Iterator sembra essere stato aggiunto al codice base dopo tale rilascio; per utilizzarlo, è necessario utilizzare lo development version of EventMachine.

Di seguito ha lavorato per me:

$ 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 
... 

ci sono anche alcune slides relative alla EM::Iterator in eccellente presentazione di Aman Gupta EventMachine: scalable non-blocking i/o in ruby, pagine 46-50.