[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