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
- .add_sniffer(name, &definition) ⇒ Object
- .define(name, auto_trigger = true, &definition) ⇒ Object
- .run_sniffers_for(node) ⇒ Object
- .sniffers ⇒ Object
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 |
.sniffers ⇒ Object
12 13 14 |
# File 'lib/inprovise/sniff.rb', line 12 def sniffers @sniffers ||= Inprovise::ScriptIndex.new('sniffers') end |