Sha256: bfb246128bdd6a75ad9669e3047f51201a221a52d6e4272752fa188dd44d1a3c
Contents?: true
Size: 1.78 KB
Versions: 4
Compression:
Stored size: 1.78 KB
Contents
module HammerCLI class Modules def self.names # legacy modules config modules = HammerCLI::Settings.get(:modules) || [] logger.warn _("Legacy configuration of modules detected. Check section about configuration in user manual") unless modules.empty? HammerCLI::Settings.dump.inject(modules) do |names, (mod_name, mod_config)| if mod_config.kind_of?(Hash) && !mod_config[:enable_module].nil? mod = ["hammer_cli_#{mod_name}"] if mod_config[:enable_module] names += mod else names -= mod # disable when enabled in legacy config end end names end end def self.find_by_name(name) possible_names = [ name.camelize, name.camelize.gsub("Cli", "CLI") ] possible_names.each do |n| return Object.const_get(n) if Object.const_defined?(n) end return nil end def self.load!(name) begin require_module(name) rescue Exception => e logger.error "Error while loading module #{name}" puts _("Warning: An error occured while loading module %s") % name # with ModuleLoadingError we assume the error is already logged by the issuer logger.error e unless e.is_a?(HammerCLI::ModuleLoadingError) raise e end version = find_by_name(name).version logger.info "Extension module #{name} (#{version}) loaded" true end def self.load(name) load! name rescue Exception => e false end def self.require_module(name) require name end def self.load_all HammerCLI::Modules.names.each do |m| Modules.load(m) end end protected def self.logger Logging.logger['Modules'] end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
hammer_cli-0.1.3 | lib/hammer_cli/modules.rb |
hammer_cli-0.1.2 | lib/hammer_cli/modules.rb |
hammer_cli-0.1.1 | lib/hammer_cli/modules.rb |
hammer_cli-0.1.0 | lib/hammer_cli/modules.rb |