Class: Ori::Broadcast

Inherits:
Object
  • Object
show all
Defined in:
lib/ori/broadcast.rb

Overview

: [E]

Defined Under Namespace

Classes: Subscription

Instance Method Summary collapse

Constructor Details

#initializeBroadcast

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

#subscribeObject

: () -> 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