mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-13 06:42:35 +00:00
42 lines
765 B
Ruby
42 lines
765 B
Ruby
# frozen_string_literal: true
|
|
|
|
class IMICFPS
|
|
class Component
|
|
@components = {}
|
|
|
|
def self.get(name)
|
|
@components[name]
|
|
end
|
|
|
|
def self.inherited(subclass)
|
|
@components["__pending"] ||= []
|
|
@components["__pending"] << subclass
|
|
end
|
|
|
|
def self.initiate
|
|
return unless @components["__pending"] # Already setup
|
|
|
|
@components["__pending"].each do |klass|
|
|
component = klass.new
|
|
@components[component.name] = component
|
|
end
|
|
|
|
@components.delete("__pending")
|
|
end
|
|
|
|
def initialize
|
|
setup
|
|
end
|
|
|
|
def name
|
|
string = self.class.name.split("::").last
|
|
split = string.scan(/[A-Z][a-z]*/)
|
|
|
|
split.map(&:downcase).join("_").to_s.to_sym
|
|
end
|
|
|
|
def setup
|
|
end
|
|
end
|
|
end
|