Class: SlackRTMReceiver::EventHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/slack-rtm-receiver/event-handler.rb

Overview

Create objects to handle events:

- subclass EventHandler, or
- just create an instance and pass a block

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type = :message, &block) ⇒ EventHandler

Create a new handler instance

Parameters:

  • type (String) (defaults to: :message)

    event type



32
33
34
35
# File 'lib/slack-rtm-receiver/event-handler.rb', line 32

def initialize(type = :message, &block)
  @type = type
  @block = block if block_given?
end

Instance Attribute Details

#typeObject (readonly)

Returns the value of attribute type.



28
29
30
# File 'lib/slack-rtm-receiver/event-handler.rb', line 28

def type
  @type
end

Class Method Details

.add_type(type, &block) ⇒ Object

Create and register a handler object by passing a block

Parameters:

  • type (String)

    event type



23
24
25
26
# File 'lib/slack-rtm-receiver/event-handler.rb', line 23

def self.add_type(type, &block)
  handler = new(type, &block)
  SlackRTMReceiver.add_event_handler(handler)
end

Instance Method Details

#process_event(event, session) ⇒ Object

Callback method; called by SlackRTMReceiver::Session when event is received

Parameters:

  • event (Hash)

    data

  • caller (Object)

    object



40
41
42
43
44
# File 'lib/slack-rtm-receiver/event-handler.rb', line 40

def process_event(event, session)
  logger = session.logger
  logger.debug "#{self.class.name} running..."
  @block.call(event, session) if @block
end