Module: StoryTeller::Subscribers

Included in:
Publisher
Defined in:
lib/story_teller/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



44
45
46
# File 'lib/story_teller/subscription.rb', line 44

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

#subscribe(obj) ⇒ Object



28
29
30
# File 'lib/story_teller/subscription.rb', line 28

def subscribe(obj)
  explicit_subscribers << obj
end

#subscribersObject



40
41
42
# File 'lib/story_teller/subscription.rb', line 40

def subscribers
  explicit_subscribers.dup
end

#unsubscribe(obj) ⇒ Object



32
33
34
# File 'lib/story_teller/subscription.rb', line 32

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

#unsubscribe_allObject



36
37
38
# File 'lib/story_teller/subscription.rb', line 36

def unsubscribe_all
  explicit_subscribers.clear
end