class HammerCLI::Modules
Public Class Methods
disabled_modules()
click to toggle source
# File lib/hammer_cli/modules.rb, line 27 def self.disabled_modules HammerCLI::Settings.dump.inject([]) do |names, (mod_name, mod_config)| if is_module_config?(mod_config) mod = "hammer_cli_#{mod_name}" names << mod unless mod_config[:enable_module] end names end end
enabled_modules()
click to toggle source
# File lib/hammer_cli/modules.rb, line 9 def self.enabled_modules # 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 is_module_config?(mod_config) 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
find_by_name(name)
click to toggle source
# File lib/hammer_cli/modules.rb, line 43 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
load(name)
click to toggle source
# File lib/hammer_cli/modules.rb, line 71 def self.load(name) load! name rescue Exception => e false end
load!(name)
click to toggle source
# File lib/hammer_cli/modules.rb, line 55 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
load_all()
click to toggle source
# File lib/hammer_cli/modules.rb, line 81 def self.load_all HammerCLI::Modules.names.each do |m| Modules.load(m) end loaded_for_deps = loaded_modules & disabled_modules unless loaded_for_deps.empty? message = _("Error: Some of the required modules are disabled in configuration: %s ") % loaded_for_deps.join(', ') raise HammerCLI::ModuleDisabledButRequired.new(message) end end
loaded_modules()
click to toggle source
# File lib/hammer_cli/modules.rb, line 37 def self.loaded_modules Object.constants. select{ |c| c.to_s =~ /\AHammerCLI[A-Z]./ && Object.const_get(c).class == Module }. map{ |m| m.to_s.underscore } end
names()
click to toggle source
# File lib/hammer_cli/modules.rb, line 5 def self.names enabled_modules.sort end
require_module(name)
click to toggle source
# File lib/hammer_cli/modules.rb, line 77 def self.require_module(name) require name end
Protected Class Methods
is_module_config?(config)
click to toggle source
# File lib/hammer_cli/modules.rb, line 94 def self.is_module_config?(config) config.kind_of?(Hash) && !config[:enable_module].nil? end
logger()
click to toggle source
# File lib/hammer_cli/modules.rb, line 98 def self.logger Logging.logger['Modules'] end