Parent

Class/Module Index [+]

Quicksearch

HammerCLI::Modules

Public Class Methods

find_by_name(name) click to toggle source
# File lib/hammer_cli/modules.rb, line 25
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 53
def self.load(name)
  load! name
rescue Exception => e
  false
end
load!(name) click to toggle source
# File lib/hammer_cli/modules.rb, line 37
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 63
def self.load_all
  HammerCLI::Modules.names.each do |m|
    Modules.load(m)
  end
end
names() click to toggle source
# File lib/hammer_cli/modules.rb, line 6
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
require_module(name) click to toggle source
# File lib/hammer_cli/modules.rb, line 59
def self.require_module(name)
  require name
end

Protected Class Methods

logger() click to toggle source
# File lib/hammer_cli/modules.rb, line 70
def self.logger
  Logging.logger['Modules']
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.