aboutsummaryrefslogtreecommitdiff
path: root/lib/mauve/notifiers
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mauve/notifiers')
-rw-r--r--lib/mauve/notifiers/debug.rb58
-rw-r--r--lib/mauve/notifiers/email.rb1
2 files changed, 36 insertions, 23 deletions
diff --git a/lib/mauve/notifiers/debug.rb b/lib/mauve/notifiers/debug.rb
index 775364d..a9afc52 100644
--- a/lib/mauve/notifiers/debug.rb
+++ b/lib/mauve/notifiers/debug.rb
@@ -12,48 +12,62 @@ module Mauve
base.class_eval do
alias_method :send_alert_without_debug, :send_alert
alias_method :send_alert, :send_alert_to_debug_channels
-
- # Specifying deliver_to_file allows the administrator to ask for alerts
- # to be delivered to a particular file, which is assumed to be perused
- # by a person rather than a machine.
- #
- attr :deliver_to_file, true
-
- # Specifying deliver_to_queue allows a tester to ask for the send_alert
- # parameters to be appended to a Queue object (or anything else that
- # responds to <<).
- #
- attr :deliver_to_queue, true
end
end
+
+ def extended(base)
+ base.instance_eval do
+ alias :send_alert_without_debug :send_alert
+ alias :send_alert :send_alert_to_debug_channels
+ end
+ end
end
-
+
+
+ # Specifying deliver_to_file allows the administrator to ask for alerts
+ # to be delivered to a particular file, which is assumed to be perused
+ # by a person rather than a machine.
+ #
+ def deliver_to_file
+ @deliver_to_file
+ end
+
+ def deliver_to_file=(fn)
+ @deliver_to_file = fn
+ end
+
+ # Specifying deliver_to_queue allows a tester to ask for the send_alert
+ # parameters to be appended to a Queue object (or anything else that
+ # responds to <<).
+ #
+ def deliver_to_queue
+ @deliver_to_queue
+ end
+
+ def deliver_to_queue=(q)
+ @deliver_to_queue = q
+ end
+
def disable_normal_delivery!
@disable_normal_delivery = true
end
def send_alert_to_debug_channels(destination, alert, all_alerts, conditions = nil)
- message = if respond_to?(:prepare_message)
+ message = if self.respond_to?(:prepare_message)
prepare_message(destination, alert, all_alerts, conditions)
else
[destination, alert, all_alerts].inspect
end
if deliver_to_file
- #lock_file = "#{deliver_to_file}.lock"
- #while File.exists?(lock_file)
- # sleep 0.1
- #end
- #FileUtils.touch(lock_file)
File.open("#{deliver_to_file}", "a+") do |fh|
fh.flock(File::LOCK_EX)
- fh.print("#{Time.now} from #{self.class}: " + message + "\n")
+ fh.print YAML.dump([Time.now, self.class, destination, message])
fh.flush()
end
- #FileUtils.rm(lock_file)
end
- deliver_to_queue << [destination, alert, all_alerts, conditions] if deliver_to_queue
+ deliver_to_queue << [Time.now, self.class, destination, message] if deliver_to_queue
if @disable_normal_delivery
true # pretend it happened OK if we're just testing
diff --git a/lib/mauve/notifiers/email.rb b/lib/mauve/notifiers/email.rb
index 8efdbec..5b8e9a0 100644
--- a/lib/mauve/notifiers/email.rb
+++ b/lib/mauve/notifiers/email.rb
@@ -97,7 +97,6 @@ module Mauve
m.to_s
end
- include Debug
end
end
end