class DaFunk::Notification

Attributes

callbacks[RW]

Public Class Methods

check(msg) click to toggle source
# File lib/da_funk/notification.rb, line 10
def self.check(msg)
  if msg.is_a?(String) && msg.include?("\"message\"") && msg.include?("|")
    [:notification, NotificationEvent.new(JSON.parse(msg)["message"])]
  else
    msg
  end
rescue ArgumentError => e
  if e.message == "invalid json"
    msg
  else
    raise
  end
end
execute(event) click to toggle source
# File lib/da_funk/notification.rb, line 24
def self.execute(event)
  calls = self.callbacks[event.callback]
  return unless calls
  [:before, :on, :after].each do |moment|
    calls.each do |callback|
      callback.call(event, moment)
    end
  end
end
schedule(callback) click to toggle source
# File lib/da_funk/notification.rb, line 34
def self.schedule(callback)
  self.callbacks[callback.description] ||= []
  self.callbacks[callback.description] << callback
end