module Fanli

Fanli

Constants

VERSION

Public Class Methods

add_listener(registry, ev, listener) click to toggle source
# File lib/fanli.rb, line 26
def self.add_listener(registry, ev, listener)
  queue = registry[ev]
  if queue
    queue << listener
  else
    registry[ev] = [listener]
  end
end
apply_callback(callback, data, objs) click to toggle source
# File lib/fanli.rb, line 35
def self.apply_callback(callback, data, objs)
  return if objs.nil?
  objs.map do |obj|
    if obj.respond_to?(callback)
      obj.send(callback, data)
    elsif obj.respond_to?(:call)
      obj.call(data)
    else
      next
    end
  end
end
on(ev, *listeners) click to toggle source
# File lib/fanli.rb, line 8
def self.on(ev, *listeners)
  if listeners.size  == 1
    add_listener(@registry, ev.to_sym, listeners.first)
  else
    listeners.each do |ln|
      add_listener(@registry, ev.to_sym, ln)
    end
  end
end
reset() click to toggle source
# File lib/fanli.rb, line 22
def self.reset
  @registry = {}
end
trigger(ev, with:) click to toggle source
# File lib/fanli.rb, line 18
def self.trigger(ev, with:)
  apply_callback("on_#{ev}", with, @registry[ev.to_sym])
end