module 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