Module: Inprovise::Sniffer

Defined in:
lib/inprovise/sniff.rb

Overview

Sniffer main module for Inprovise

Author

Martin Corino

License

Distributes under the same license as Ruby

Constant Summary collapse

ROOT_SCRIPT =
'sniffers'

Class Method Summary collapse

Class Method Details

.add_sniffer(name, &definition) ⇒ Object



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

def add_sniffer(name, &definition)
  Inprovise.log.local("Adding sniffer script #{name}") if Inprovise.verbosity > 2
  script = Inprovise::Script.new(name)
  Inprovise::Script::DSL.new(script).instance_eval(&definition) if block_given?
  sniffers.add(script)
  script
end

.define(name, auto_trigger = true, &definition) ⇒ Object



25
26
27
28
29
# File 'lib/inprovise/sniff.rb', line 25

def define(name, auto_trigger=true, &definition)
  script = add_sniffer("sniff[#{name}]", &definition)
  sniffers.get(ROOT_SCRIPT).triggers(script.name) if auto_trigger
  script
end

.run_sniffers_for(node) ⇒ Object



31
32
33
34
35
36
# File 'lib/inprovise/sniff.rb', line 31

def run_sniffers_for(node)
  node.config[:attributes] ||= {}
  runner = Inprovise::ScriptRunner.new(node, 'sniffers')
  runner.set_index(@sniffers)
  runner.execute(:apply)
end

.sniffersObject



12
13
14
# File 'lib/inprovise/sniff.rb', line 12

def sniffers
  @sniffers ||= Inprovise::ScriptIndex.new('sniffers')
end