[rspec-users] Growl notifications don't work each time??
Greg Hauptmann
greg.hauptmann.ruby at gmail.com
Thu Sep 11 23:45:04 EDT 2008
Hi - has anyone had problems with Growl notifications not working each
time? I can hit save on a test, wait, check. Then hit save again,
wait, check. Sometimes the growl notification doesn't work.
I'm using ZenTest / Rspec.
* ZenTest (3.10.0)
* Macintosh-2:myequity greg$ ruby -v
ruby 1.8.6 (2007-09-23 patchlevel 110) [i686-darwin9.3.0]
* Macintosh-2:myequity greg$ rails -v
Rails 2.1.1
=========================
Macintosh-2:myequity greg$ cat ~/.autotest
# -*- ruby -*-
# NOTE Copy this to your home folder as .autotest
#
# Originally from
http://wincent.com/knowledge-base/Setting_up_autotest_to_use_Growl
#
# Modifications:
# * Minor refactoring to use .autotest_images directory
# [Geoffrey Grosenbach http://peepcode.com]
# * Test::Unit compatibility [Pat Nakajima]
#
module Autotest::Growl
AUTOTEST_IMAGE_ROOT = "~/.autotest_images"
def self.growl title, msg, img, pri=0, sticky=""
system "growlnotify -n autotest --image #{img} -p #{pri} -m
#{msg.inspect} #{title} #{sticky}"
end
def self.growl_fail(output)
growl "FAIL", "#{output}", "#{AUTOTEST_IMAGE_ROOT}/fail.png", 2
end
def self.growl_pass(output)
growl "Pass", "#{output}", "#{AUTOTEST_IMAGE_ROOT}/pass.png"
end
Autotest.add_hook :ran_command do |at|
results = [at.results].flatten.join("\n")
if results.include? 'tests'
output = results.slice(/(\d+)\s+tests?,\s*(\d+)\s+assertions?,\s*(\d+)\s+failures?(,\s*(\d+)\s+errors)?/)
if output
$~[3].to_i + $~[5].to_i > 0 ? growl_fail(output) : growl_pass(output)
end
else
output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+not
implemented)?/)
if output
$~[2].to_i > 0 ? growl_fail(output) : growl_pass(output)
end
end
end
end
=========================
More information about the rspec-users
mailing list