Sha256: df76f11a9ab94e9e30f1b1f5bada9d335aecbeb31c473b1d740b7e46db73e614
Contents?: true
Size: 906 Bytes
Versions: 57
Compression:
Stored size: 906 Bytes
Contents
# frozen_string_literal: true module Facter class ClassDiscoverer include Singleton def initialize @log = Log.new(self) end def discover_classes(operating_system) os_module_name = Module.const_get("Facts::#{operating_system}") # select only classes find_nested_classes(os_module_name, discovered_classes = []) discovered_classes rescue NameError @log.debug("There is no module named #{operating_system}") [] end def find_nested_classes(mod, discovered_classes) mod.constants.each do |constant_name| if mod.const_get(constant_name).instance_of? Class discovered_classes << mod.const_get(constant_name) elsif mod.const_get(constant_name).instance_of? Module find_nested_classes(Module.const_get("#{mod.name}::#{constant_name}"), discovered_classes) end end end end end
Version data entries
57 entries across 57 versions & 1 rubygems