Sha256: 64e0d36f3673f597d0758a8e8049af46d5ed58ec6f5c3f32b1f0b42329f1b63a
Contents?: true
Size: 1.19 KB
Versions: 10
Compression:
Stored size: 1.19 KB
Contents
# typed: ignore # Copyright (c) 2015 Sqreen. All Rights Reserved. # Please refer to our terms for more information: https://www.sqreen.com/terms.html 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
10 entries across 10 versions & 1 rubygems