Class: HammerCLI::Modules

Inherits:
Object
  • Object
show all
Defined in:
lib/hammer_cli/modules.rb

Class Method Summary collapse

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



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/hammer_cli/modules.rb', line 22

def self.load(name)
  begin
    require_module(name)
  rescue Exception => e
    logger.error "Error while loading module #{name}"
    raise e
  end

  version = find_by_name(name).version
  logger.info "Extension module #{name} (#{version}) loaded"
end

.load_allObject



38
39
40
41
42
# File 'lib/hammer_cli/modules.rb', line 38

def self.load_all
  HammerCLI::Modules.names.each do |m|
    Modules.load(m)
  end
end

.namesObject



6
7
8
# File 'lib/hammer_cli/modules.rb', line 6

def self.names
  HammerCLI::Settings.get(:modules) || []
end

.require_module(name) ⇒ Object



34
35
36
# File 'lib/hammer_cli/modules.rb', line 34

def self.require_module(name)
  require name
end