Class: Ori::Broadcast
- Inherits:
-
Object
- Object
- Ori::Broadcast
- Defined in:
- lib/ori/broadcast.rb
Overview
: [E]
Defined Under Namespace
Classes: Subscription
Instance Method Summary collapse
-
#initialize ⇒ Broadcast
constructor
A new instance of Broadcast.
-
#publish(item) ⇒ Object
(also: #<<)
: (E item) -> void.
-
#subscribe ⇒ Object
: () -> Subscription.
-
#unsubscribe(subscription) ⇒ Object
: (Subscription subscription) -> void.
Constructor Details
#initialize ⇒ Broadcast
Returns a new instance of Broadcast.
6 7 8 |
# File 'lib/ori/broadcast.rb', line 6 def initialize @subscriptions = [] #: Array[Subscription[E]] end |
Instance Method Details
#publish(item) ⇒ Object Also known as: <<
: (E item) -> void
23 24 25 |
# File 'lib/ori/broadcast.rb', line 23 def publish(item) @subscriptions.each { |sub| sub.__send_item(item) } end |
#subscribe ⇒ Object
: () -> Subscription
11 12 13 14 15 |
# File 'lib/ori/broadcast.rb', line 11 def subscribe subscription = Subscription.new(self) @subscriptions << subscription subscription end |
#unsubscribe(subscription) ⇒ Object
: (Subscription subscription) -> void
18 19 20 |
# File 'lib/ori/broadcast.rb', line 18 def unsubscribe(subscription) @subscriptions.delete(subscription) end |