Class: Facter::ClassDiscoverer
- Inherits:
-
Object
- Object
- Facter::ClassDiscoverer
- Includes:
- Singleton
- Defined in:
- lib/facter/framework/core/fact_loaders/class_discoverer.rb
Instance Method Summary collapse
- #discover_classes(operating_system) ⇒ Object
- #find_nested_classes(mod, discovered_classes) ⇒ Object
-
#initialize ⇒ ClassDiscoverer
constructor
A new instance of ClassDiscoverer.
Constructor Details
#initialize ⇒ ClassDiscoverer
Returns a new instance of ClassDiscoverer.
7 8 9 |
# File 'lib/facter/framework/core/fact_loaders/class_discoverer.rb', line 7 def initialize @log = Log.new(self) end |
Instance Method Details
#discover_classes(operating_system) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/facter/framework/core/fact_loaders/class_discoverer.rb', line 11 def discover_classes() os_module_name = Module.const_get("Facts::#{}") # select only classes find_nested_classes(os_module_name, discovered_classes = []) discovered_classes rescue NameError @log.debug("There is no module named #{}") [] end |
#find_nested_classes(mod, discovered_classes) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/facter/framework/core/fact_loaders/class_discoverer.rb', line 22 def find_nested_classes(mod, discovered_classes) mod.constants.each do |constant_name| obj = mod.const_get(constant_name) if obj.instance_of? Class discovered_classes << obj elsif obj.instance_of? Module find_nested_classes(Module.const_get("#{mod.name}::#{constant_name}"), discovered_classes) end end end |