summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Kemp <steve@steve.org.uk>2012-11-24 16:25:11 +0000
committerSteve Kemp <steve@steve.org.uk>2012-11-24 16:25:11 +0000
commitf9c2b20d317abdc6191e08d6e536892ee07689e9 (patch)
tree963c7acb794c0bf516d201337e9f4be4e3a29d3e
parent4749fe9c09d1182ccde108049a7879bde63cf527 (diff)
Added new alert-type, to merely write to a file.
-rw-r--r--lib/custodian/alerts.rb1
-rw-r--r--lib/custodian/alerts/file.rb66
-rwxr-xr-xt/test-custodian-alertfactory.rb2
3 files changed, 68 insertions, 1 deletions
diff --git a/lib/custodian/alerts.rb b/lib/custodian/alerts.rb
index 74d021b..eb12215 100644
--- a/lib/custodian/alerts.rb
+++ b/lib/custodian/alerts.rb
@@ -14,6 +14,7 @@ require 'custodian/alertfactory'
#
# The individual alert-types.
#
+require 'custodian/alerts/file'
require 'custodian/alerts/mauve'
require 'custodian/alerts/smtp'
diff --git a/lib/custodian/alerts/file.rb b/lib/custodian/alerts/file.rb
new file mode 100644
index 0000000..12bf907
--- /dev/null
+++ b/lib/custodian/alerts/file.rb
@@ -0,0 +1,66 @@
+
+
+
+#
+# The SMTP-alerter.
+#
+module Custodian
+
+ module Alerter
+
+ class AlertFile < AlertFactory
+
+ #
+ # The test this alerter cares about
+ #
+ attr_reader :test
+
+
+
+ #
+ # Constructor - save the test-object away.
+ #
+ def initialize( obj )
+ @test = obj
+ end
+
+
+
+ #
+ # Record a raise event for the given test.
+ #
+ def raise
+ write_message( "RAISE: #{test.target} failed #{test.get_type}-test - #{test.error()}" )
+ end
+
+
+
+ #
+ # Record a clear event for the given test.
+ #
+ def clear
+ write_message( "CLEAR: #{test.target} failed #{test.get_type}-test" )
+ end
+
+
+ #
+ # Write the actual message to our target.
+ #
+ def write_message( msg )
+ file = File.open(@target, "a")
+ file.puts( "#{Time.now} #{msg}" )
+ file.close
+
+ end
+
+
+
+
+ register_alert_type "file"
+
+
+
+
+ end
+ end
+end
diff --git a/t/test-custodian-alertfactory.rb b/t/test-custodian-alertfactory.rb
index 602ef5f..ede6aa7 100755
--- a/t/test-custodian-alertfactory.rb
+++ b/t/test-custodian-alertfactory.rb
@@ -30,7 +30,7 @@ class TestAlertFactory < Test::Unit::TestCase
#
# Ensure we can create each of the two alert types we care about
#
- %w( mauve smtp ).each do |name|
+ %w( file mauve smtp ).each do |name|
#
# Use the factory to instantiate the correct object.