class Reacto::Subscriptions::TrackerSubscription
Public Class Methods
new(notification_tracker, trackable)
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 8 def initialize(notification_tracker, trackable) @notification_tracker = notification_tracker @trackable = trackable @subscribed = true @subscriptions = [] @resources = [] end
Public Instance Methods
add(subscription)
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 38 def add(subscription) @subscriptions << subscription end
add_resource(resource)
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 34 def add_resource(resource) @resources << resource end
on_close()
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 64 def on_close return unless subscribed? @notification_tracker.on_close @subscriptions.each(&:on_close) unsubscribe end
on_error(e)
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 56 def on_error(e) return unless subscribed? @notification_tracker.on_error(e) @subscriptions.each { |s| s.on_error(e) } unsubscribe end
on_open()
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 42 def on_open return unless subscribed? @notification_tracker.on_open @subscriptions.each(&:on_open) end
on_value(v)
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 49 def on_value(v) return unless subscribed? @notification_tracker.on_value(v) @subscriptions.each { |s| s.on_value(v) } end
subscribed?()
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 17 def subscribed? @subscribed end
unsubscribe()
click to toggle source
# File lib/reacto/subscriptions/tracker_subscription.rb, line 21 def unsubscribe @subscriptions.each(&:unsubscribe) return unless subscribed? @trackable.off(@notification_tracker) @trackable = nil @notification_tracker = nil @subscribed = false @resources.each(&:cleanup) @resources = [] end