class Slappy::Listener::Base

Public Class Methods

new(pattern, options = {}, &callback) click to toggle source
# File lib/slappy/listeners/base.rb, line 10
def initialize(pattern, options = {}, &callback)
  self.pattern = pattern
  if options[:from]
    target.channel = options[:from][:channel]
    target.user = options[:from][:user]
  end
  @callback = callback
end

Public Instance Methods

call(event) click to toggle source
# File lib/slappy/listeners/base.rb, line 19
def call(event)
  channel = "channel: #{event.try(:channel).try(:name)}"
  element = "#{target_element}: #{event.try(target_element)}"
  Debug.log "Listen event call(#{channel} / #{element})"

  return unless valid?(event)
  return unless target?(event)

  Debug.log "Callback event call: #{pattern}"
  @callback.call(event)
end

Private Instance Methods

target_element() click to toggle source
# File lib/slappy/listeners/base.rb, line 33
def target_element
  self.class.name.split('::').last.gsub(/Listener$/, '').underscore.to_sym
end