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