Module: MuninManager::Plugins

Extended by:
Enumerable, Plugins
Included in:
Plugins
Defined in:
lib/munin_manager/plugins.rb

Defined Under Namespace

Classes: FbProxyLatency, HaproxyAppResponseTime, HaproxyResponseTime, HaproxyRps, NetworkLatency, NotificationClassification, PacketLoss, RailsRendering, RailsResponseTime, ScribeNet, StarlingAge, StarlingNet, StarlingOps, StarlingQueue

Instance Method Summary collapse

Instance Method Details

#[](*names) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/munin_manager/plugins.rb', line 16

def [](*names)
  if names.length == 1
    return detect {|plugin_klass| plugin_klass.plugin_name == names.first}
  end
  
  names.map {|name| self[name]}
end

#each(&block) ⇒ Object



6
7
8
# File 'lib/munin_manager/plugins.rb', line 6

def each(&block)
  registered_plugins.each(&block)
end

#registered_pluginsObject



10
11
12
13
14
# File 'lib/munin_manager/plugins.rb', line 10

def registered_plugins
  @registered_plugins ||= constants.
    map {|c| const_get(c) }.
    select {|const| const.is_a?(Class) && const < MuninManager::ActsAsMuninPlugin}
end

#search(name) ⇒ Object



24
25
26
27
# File 'lib/munin_manager/plugins.rb', line 24

def search(name)
  str = name.to_s.split('.', 2).first
  detect {|plugin_klass| plugin_klass.plugin_name.starts_with?(str)}
end