From 3a579efcd3ea7e4362f7abeb4138c4087e6f13c1 Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Tue, 17 Apr 2012 18:06:24 +0100 Subject: Changed method of including the Debug notification module. Now debug! can be specified in the config to extend that particular instance of a notification method. --- .../configuration_builders/notification_method.rb | 4 ++ lib/mauve/notifiers/debug.rb | 46 ++++++++++++++++------ lib/mauve/notifiers/email.rb | 1 - 3 files changed, 37 insertions(+), 14 deletions(-) (limited to 'lib/mauve') diff --git a/lib/mauve/configuration_builders/notification_method.rb b/lib/mauve/configuration_builders/notification_method.rb index 9596587..3f9283e 100644 --- a/lib/mauve/configuration_builders/notification_method.rb +++ b/lib/mauve/configuration_builders/notification_method.rb @@ -35,6 +35,10 @@ module Mauve def result @result ||= @provider_class.new(@name) end + + def debug! + result.extend(Mauve::Notifiers::Debug) + end # This catches all methods available for a provider, as needed. # diff --git a/lib/mauve/notifiers/debug.rb b/lib/mauve/notifiers/debug.rb index 775364d..417bc94 100644 --- a/lib/mauve/notifiers/debug.rb +++ b/lib/mauve/notifiers/debug.rb @@ -12,22 +12,42 @@ 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 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 -- cgit v1.2.1