Sha256: 219728ee181632f0585e8fb37b2c39281838ecfb243bb328894a6672e532c381
Contents?: true
Size: 1.18 KB
Versions: 3
Compression:
Stored size: 1.18 KB
Contents
module HammerCLI class Modules def self.names HammerCLI::Settings.get(:modules) || [] 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 LoadError => e logger.error "Module #{name} not found" raise e rescue Exception => e logger.error "Error while loading module #{name}" logger.error e puts "Warning: An error occured while loading module #{name}" 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hammer_cli-0.0.18 | lib/hammer_cli/modules.rb |
hammer_cli-0.0.16 | lib/hammer_cli/modules.rb |
hammer_cli-0.0.15 | lib/hammer_cli/modules.rb |