0
tcpポートからの受信データを、「ビュー」のデータであるかのように扱うことを計画しています。いくつかのRxRuby Observablesを設定したいのですが、tcpポートから取得したデータに応じて適切なObservableを選択し、on_next
メソッドを呼び出して何かを公開してください。Rubyインスタンス変数をRxRuby Observableに設定する方法はありますか?
次のコードは機能しますが、不器用なようです。 Rx::Observable.create
に渡されたブロックは、インスタンス変数を渡されたオブザーバブルに設定するだけです。巨大な量のボイラープレートではありませんが、何かが正しいとは思わないのです。何か不足していますか? Rxの::件名についての詳細を読んだ後
require 'rx'
class GUIMessagePublisher
attr_accessor :handshake, :handshake_stream, :remote_button, :remote_button_stream
def initialize
self.handshake_stream = Rx::Observable.create { |o| self.handshake = o }
self.remote_button_stream = Rx::Observable.create { |o| self.remote_button = o }
end
def publish_handshake
handshake.on_next("hello")
end
def publish_remote_button
remote_button.on_next(nil)
end
end
publisher = GUIMessagePublisher.new
publisher.handshake_stream.subscribe { |m| puts "message = #{m}"}
publisher.remote_button_stream.subscribe { puts "remote button clicked" }
publisher.publish_handshake
publisher.publish_remote_button