class RxRuby::HotObservable
Attributes
messages[R]
subscriptions[R]
Public Class Methods
new(scheduler, *args)
click to toggle source
# File lib/rx_ruby/testing/hot_observable.rb, line 14 def initialize(scheduler, *args) raise 'scheduler cannot be nil' unless scheduler @scheduler = scheduler @messages = args @subscriptions = [] @observers = [] @messages.each do |message| notification = message.value @scheduler.schedule_at_relative_with_state(nil, message.time, lambda {|scheduler1, state1| @observers.clone.each {|observer| notification.accept observer } Subscription.empty }) end end
Public Instance Methods
subscribe(observer)
click to toggle source
# File lib/rx_ruby/testing/hot_observable.rb, line 33 def subscribe(observer) raise 'observer cannot be nil' unless observer @observers.push observer subscriptions.push (TestSubscription.new @scheduler.clock) index = subscriptions.length - 1 Subscription.create do @observers.delete observer subscriptions[index] = TestSubscription.new(subscriptions[index].subscribe, @scheduler.clock) end end