Class: Interferon::Alert

Inherits:
Object
  • Object
show all
Defined in:
lib/interferon/alert.rb

Instance Method Summary collapse

Constructor Details

#initialize(path) ⇒ Alert

Returns a new instance of Alert.



3
4
5
6
7
8
9
10
# File 'lib/interferon/alert.rb', line 3

def initialize(path)
  @path = path
  @filename = File.basename(path)

  @text = File.read(@path)

  @dsl = nil
end

Instance Method Details

#[](attr) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/interferon/alert.rb', line 42

def [](attr)
  unless @dsl
    raise "This alert has not yet been evaluated"
  end

  return @dsl.send(attr)
end

#change_name(name) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/interferon/alert.rb', line 26

def change_name(name)
  unless @dsl
    raise "This alert has not yet been evaluated"
  end

  @dsl.name(name)
end

#evaluate(hostinfo) ⇒ Object



16
17
18
19
20
21
22
23
24
# File 'lib/interferon/alert.rb', line 16

def evaluate(hostinfo)
  dsl = AlertDSL.new(hostinfo)
  dsl.instance_eval(@text, @filename, 1)
  dsl.name(dsl.name.strip)
  @dsl = dsl

  # return the alert and not the DSL object, which is private
  self
end

#silenceObject



34
35
36
37
38
39
40
# File 'lib/interferon/alert.rb', line 34

def silence
  unless @dsl
    raise "This alert has not yet been evaluated"
  end

  @dsl.silenced(true)
end

#to_sObject



12
13
14
# File 'lib/interferon/alert.rb', line 12

def to_s
  @filename
end