class Reacto::SharedTrackable
Public Class Methods
new(executor = nil, activate_on_subscribe = false, &block)
click to toggle source
Calls superclass method
# File lib/reacto/shared_trackable.rb, line 5 def initialize(executor = nil, activate_on_subscribe = false, &block) super(executor, &block) @activate_on_subscribe = activate_on_subscribe @active = false end
Public Instance Methods
activate!()
click to toggle source
# File lib/reacto/shared_trackable.rb, line 34 def activate! return if @shared_subscription.nil? return if @active @active = true do_track(shared_subscription) self end
activate_on_subscribe()
click to toggle source
# File lib/reacto/shared_trackable.rb, line 44 def activate_on_subscribe end
off(notification_tracker = nil)
click to toggle source
# File lib/reacto/shared_trackable.rb, line 12 def off(notification_tracker = nil) shared_subscription.subscriptions.reject! do |subscription| !subscription.subscribed? end return if shared_subscription.subscriptions.count > 0 shared_subscription.unsubscribe @shared_subscription = nil @active = false end
track(notification_tracker)
click to toggle source
# File lib/reacto/shared_trackable.rb, line 24 def track(notification_tracker) subscription = Subscriptions::TrackerSubscription.new(notification_tracker, self) shared_subscription.add(subscription) activate! if @activate_on_subscribe Subscriptions::SubscriptionWrapper.new(subscription) end