Sha256: 0b7bf078d2686e59f11ac03509b71dda244a307071be8212b4c9275075d0814d
Contents?: true
Size: 1.04 KB
Versions: 6
Compression:
Stored size: 1.04 KB
Contents
require 'sqreen/ecosystem/loggable' module Sqreen module Ecosystem class ModuleRegistry include Sqreen::Ecosystem::Loggable def initialize @mods = [] end def register(mod) @mods << mod end def init_all logger.info { "Initializing #{@mods.size} ecosystem modules" } each_module do |mod| unless mod.respond_to? :setup logger.debug { "Module with type #{mod.class} requires no initialization" } next end logger.debug { "Initializing module with type #{mod.class}" } mod.setup end end def destroy_all # not implemented end # @param [Class] type def each_module(type = nil, &block) selected_mods = type ? (@mods.select { |mod| mod.is_a?(type) }) : @mods if block_given? selected_mods.each(&block) else selected_mods.each end end def module_subset(type) each_module(type).to_a end end end end
Version data entries
6 entries across 6 versions & 1 rubygems