Come posso convertire un blocco in un proc in un'estensione di Ruby 1,9 C?
-
29-10-2019 - |
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