mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-13 06:42:35 +00:00
42 lines
763 B
Ruby
42 lines
763 B
Ruby
# frozen_string_literal: true
|
|
|
|
class IMICFPS
|
|
class EventHandler
|
|
@@handlers = {}
|
|
|
|
def self.inherited(subclass)
|
|
@@handlers["__pending"] ||= []
|
|
|
|
@@handlers["__pending"] << subclass
|
|
end
|
|
|
|
def self.initiate
|
|
preserve = @@handlers["__pending"]
|
|
@@handlers.clear
|
|
@@handlers["__pending"] = preserve
|
|
|
|
@@handlers["__pending"].each do |handler|
|
|
instance = handler.new
|
|
instance.handles.each do |event|
|
|
@@handlers[event] = instance
|
|
end
|
|
end
|
|
end
|
|
|
|
def self.get(event)
|
|
@@handlers[event]
|
|
end
|
|
|
|
def initialize
|
|
end
|
|
|
|
def handlers
|
|
raise NotImplementedError
|
|
end
|
|
|
|
def handle(subscriber, context, *args)
|
|
raise NotImplementedError
|
|
end
|
|
end
|
|
end
|