私はRuby1.9C拡張機能を書いていますが、rubyで次のことを実行したいと思います。
notifier = Notifier.new
notifier.on 'click' do
puts "clicked!"
end
これに伴う問題は、Cメソッドでは、ブロックを「受信」するだけであり、私が知る限り、それはパラメーターでさえないということです。で呼び出すことができますrb_yield
。
だから私の質問は:Ruby 1.9 C拡張機能に、ブロックをprocなどに変換して、モジュール内に保存し、後で必要なときにいつでも呼び出すことができる方法はありますか?非同期コールバックのように!
私はすでにこれをProcs/lambdasで実装しましたが、ブロック構文を直接使用しないのは醜いです。