Class: HammerCLI::Modules
- Inherits:
-
Object
- Object
- HammerCLI::Modules
- Defined in:
- lib/hammer_cli/modules.rb
Class Method Summary collapse
- .find_by_name(name) ⇒ Object
- .load(name) ⇒ Object
- .load!(name) ⇒ Object
- .load_all ⇒ Object
- .names ⇒ Object
- .require_module(name) ⇒ Object
Class Method Details
.find_by_name(name) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/hammer_cli/modules.rb', line 10 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) ⇒ Object
40 41 42 43 44 |
# File 'lib/hammer_cli/modules.rb', line 40 def self.load(name) load! name rescue Exception => e false end |
.load!(name) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/hammer_cli/modules.rb', line 22 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 |
.load_all ⇒ Object
50 51 52 53 54 |
# File 'lib/hammer_cli/modules.rb', line 50 def self.load_all HammerCLI::Modules.names.each do |m| Modules.load(m) end end |
.names ⇒ Object
6 7 8 |
# File 'lib/hammer_cli/modules.rb', line 6 def self.names HammerCLI::Settings.get(:modules) || [] end |
.require_module(name) ⇒ Object
46 47 48 |
# File 'lib/hammer_cli/modules.rb', line 46 def self.require_module(name) require name end |