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
- #explicit_subscribers ⇒ Object
- #subscribe(obj) ⇒ Object
- #subscribers ⇒ Object
- #unsubscribe(obj) ⇒ Object
- #unsubscribe_all ⇒ Object
Instance Method Details
#explicit_subscribers ⇒ Object
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 |
#subscribers ⇒ Object
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_all ⇒ Object
36 37 38 |
# File 'lib/story_teller/subscription.rb', line 36 def unsubscribe_all explicit_subscribers.clear end |