module Inprovise::Sniffer

Sniffer main module for Inprovise

Author

Martin Corino

License

Distributes under the same license as Ruby

Constants

ROOT_SCRIPT

Public Class Methods

define(name, auto_trigger=true, &definition) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# File lib/inprovise/sniff.rb, line 12
def sniffers
  @sniffers ||= Inprovise::ScriptIndex.new('sniffers')
end

Private Class Methods

add_sniffer(name, &definition) click to toggle source
# 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