Domanda

Sto scrivendo un'estensione di Ruby 1,9 C e voglio fare quanto segue in Ruby:

notifier = Notifier.new
notifier.on 'click' do
  puts "clicked!"
end

Ora il problema è che sul metodo C, "ricevo" solo un blocco e, per quanto ne so, non è nemmeno un parametro: posso solo chiamare con con rb_yield.

Quindi la mia domanda è: c'è un modo su un'estensione di Ruby 1,9 C, per trasformare un blocco in un Proc o qualcosa del genere, così posso archiviarlo nel mio modulo e chiamarlo più tardi ogni volta che voglio/ne ho bisogno? Come un callback Async!

L'ho già implementato con Procs/Lambdas, ma è brutto non usare direttamente la sintassi del blocco.

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top