Module: Inform::Subscribers

Included in:
Publisher
Defined in:
lib/runtime/subscription.rb

Overview

The Subscribers module

Constant Summary collapse

REGISTRY =
Struct.new(:memo).new(defined?(Java) ? java.util.concurrent.ConcurrentHashMap.new : {})

Instance Method Summary collapse

Instance Method Details

#explicit_subscribersObject



43
44
45
# File 'lib/runtime/subscription.rb', line 43

def explicit_subscribers
  Inform::Subscribers::REGISTRY.memo[identity] ||= []
end

#subscribe(obj) ⇒ Object



27
28
29
# File 'lib/runtime/subscription.rb', line 27

def subscribe(obj)
  explicit_subscribers << obj
end

#subscribersObject



39
40
41
# File 'lib/runtime/subscription.rb', line 39

def subscribers
  explicit_subscribers.dup
end

#unsubscribe(obj) ⇒ Object



31
32
33
# File 'lib/runtime/subscription.rb', line 31

def unsubscribe(obj)
  explicit_subscribers.delete(obj)
end

#unsubscribe_allObject



35
36
37
# File 'lib/runtime/subscription.rb', line 35

def unsubscribe_all
  explicit_subscribers.clear
end