Module: Emitter

Included in:
ScClient
Defined in:
lib/socketclusterclient/emitter.rb

Overview

Module Emitter provides interface to execute events and acknowledgments

Author:

Instance Method Summary collapse

Instance Method Details

#execute(key, object) ⇒ Object

Executes a handler for a particular event

Parameters:

  • key (String)

    An index to insert handler in events

  • object (Hash)

    Data received from ScServer



62
63
64
65
# File 'lib/socketclusterclient/emitter.rb', line 62

def execute(key, object)
  function = @events[key] if @events.key?(key)
  function.call(key, object) if function
end

#executeack(key, object, ack) ⇒ Object

Executes a handler and an acknowledgment for a particular event

Parameters:

  • key (String)

    An index to retrieve handler from events

  • object (Hash)

    Data received from ScServer

  • ack (Lambda)

    A block to execute as acknowledgment



87
88
89
90
# File 'lib/socketclusterclient/emitter.rb', line 87

def executeack(key, object, ack)
  function = @events_ack[key] if @events_ack.key?(key)
  function.call(key, object, ack) if function
end

#haseventack(key) ⇒ Object

Checks acknowledgment for an event

Parameters:

  • key (String)

    An index to retrieve handler from events



74
75
76
# File 'lib/socketclusterclient/emitter.rb', line 74

def haseventack(key)
  @events_ack[key]
end

#initialize_emitterObject

Initiarizes events and acks in emitter



13
14
15
16
# File 'lib/socketclusterclient/emitter.rb', line 13

def initialize_emitter
  @events = {}
  @events_ack = {}
end

#on(key, function) ⇒ Object

Adds a handler for a particular event

Parameters:

  • key (String)

    An index to insert handler in events

  • function (Lambda)

    A block to execute on event



26
27
28
# File 'lib/socketclusterclient/emitter.rb', line 26

def on(key, function)
  @events[key] = function
end

#onack(key, function) ⇒ Object

Adds an acknowledgment handler for a particular event

Parameters:

  • key (String)

    An index to insert handler in acknowledgment

  • function (Lambda)

    An acknowledgment block to execute on event



50
51
52
# File 'lib/socketclusterclient/emitter.rb', line 50

def onack(key, function)
  @events_ack[key] = function
end

#onchannel(key, function) ⇒ Object

Adds a handler for a particular channel event

Parameters:

  • key (String)

    An index to insert handler in events

  • function (Lambda)

    A block to execute on event



38
39
40
# File 'lib/socketclusterclient/emitter.rb', line 38

def onchannel(key, function)
  @events[key] = function
end