Class: EventdObject

Inherits:
Object
  • Object
show all
Defined in:
lib/eventd/eventd_object.rb

Direct Known Subclasses

EventdClient, EventdElement, EventdServer

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeEventdObject

Initialize the EventdObject and set up the events hash.

Note

It is important that you always call super() so that the events hash can be initialized



18
19
20
# File 'lib/eventd/eventd_object.rb', line 18

def initialize
	@events = {}
end

Instance Attribute Details

#eventsObject

Returns the value of attribute events.



13
14
15
# File 'lib/eventd/eventd_object.rb', line 13

def events
  @events
end

Instance Method Details

#emit(channel, data = nil) ⇒ Object

Send an emission on a channel

Attributes

  • channel - Channel to emit on

  • data - Optional. Data to send along with the emission.



48
49
50
51
52
53
54
55
56
# File 'lib/eventd/eventd_object.rb', line 48

def emit(channel, data = nil)
	emit 'emission', { :channel => channel, :data => data } unless channel == 'emission'

	@events[channel] = (@events[channel] or [])

	@events[channel].each do |callback|
		if data == nil then callback.call else callback.call data end
	end
end

#off(channel) ⇒ Object

Remove all event listeners from a specified channel

Attributes

  • channel - Channel to unsubscribe from



38
39
40
# File 'lib/eventd/eventd_object.rb', line 38

def off(channel)
	@events[channel] = []
end

#on(channel, &callback) ⇒ Object

Add an event listener to a specified channel

Attributes

  • channel - Channel to subscribe to

  • callback - Callback block, which is triggered when an emission occurs on the channel



28
29
30
31
# File 'lib/eventd/eventd_object.rb', line 28

def on(channel, &callback)
	@events[channel] = (@events[channel] or [])
	@events[channel].push callback
end