class Reacto::Subscriptions::ExecutorSubscription
Public Class Methods
new(subscription, executor)
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 9 def initialize(subscription, executor) @executor = executor @wrapped = subscription @closed = false end
Public Instance Methods
add(subscription)
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 27 def add(subscription) @wrapped.add(subscription) end
add_resource(resource)
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 31 def add_resource(resource) @wrapped.add_resource(resource) end
on_close()
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 45 def on_close return if !subscribed? || @closed unsubscribe_subscription = Subscriptions.on_close_and_error do @executor.post(&method(:unsubscribe)) @closed = true end @wrapped.add(unsubscribe_subscription) @executor.post(&@wrapped.method(:on_close)) end
on_error(error)
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 57 def on_error(error) return if !subscribed? || @closed unsubscribe_subscription = Subscriptions.on_close_and_error do @executor.post(&method(:unsubscribe)) @closed = true end @wrapped.add(unsubscribe_subscription) @executor.post(error, &@wrapped.method(:on_error)) end
on_open()
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 35 def on_open @executor.post(&@wrapped.method(:on_open)) end
on_value(v)
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 39 def on_value(v) return if !subscribed? || @closed @executor.post(v, &@wrapped.method(:on_value)) end
subscribed?()
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 15 def subscribed? unsubscribe unless @wrapped.subscribed? @executor.running? end
unsubscribe()
click to toggle source
# File lib/reacto/subscriptions/executor_subscription.rb, line 21 def unsubscribe @wrapped.unsubscribe @executor.post(&@executor.method(:shutdown)) end