carlosbrando-autotest-notification 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{autotest-notification}
5
- s.version = "1.8.0"
5
+ s.version = "1.8.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Carlos Brando", "Rodrigo Urubatan", "Alexandre da Silva", "Carlos J\303\272nior", "Davis Zanetti Cabral", "Marcos Tapaj\303\263s", "Thiago Pradi", "Oz\303\251ias Sant'ana", "Samuel Flores", "Diego Carrion"]
9
- s.date = %q{2009-01-26}
9
+ s.date = %q{2009-02-01}
10
10
  s.description = %q{This gem set the autotest (ZenTest) to send messages to software as Growl, LibNotify, and Snarl, displaying a window with the results.}
11
11
  s.email = ["autotest-notification@carlosbrando.com"]
12
12
  s.executables = ["an-install", "an-uninstall", "playsound"]
@@ -4,7 +4,7 @@ include FileUtils
4
4
  require 'rubygems'
5
5
  %w[rake hoe newgem rubigen ZenTest].each do |req_gem|
6
6
  begin
7
- require req_gem
7
+ require req_gem.downcase
8
8
  rescue LoadError
9
9
  puts "This Rakefile requires the '#{req_gem}' RubyGem."
10
10
  puts "Installation: gem install #{req_gem} -y"
@@ -1,13 +1,26 @@
1
1
  $:.unshift(File.dirname(__FILE__))
2
- %w{ linux mac windows cygwin doom buuf }.each { |x| require "autotest_notification/#{x}" }
3
2
 
4
3
  module AutotestNotification
5
- IMAGES_DIRECTORY = File.expand_path(File.dirname(__FILE__) + "/../images/")
6
- SUCCESS_IMAGE = "#{IMAGES_DIRECTORY}/pass.png";
7
- FAIL_IMAGE = "#{IMAGES_DIRECTORY}/fail.png";
8
- PENDING_IMAGE = "#{IMAGES_DIRECTORY}/pending.png"
4
+ class Config
5
+
6
+ class << self
7
+ attr_reader :images_directory
8
+ attr_accessor :success_image, :fail_image, :pending_image, :expiration_in_seconds
9
+
10
+ def images_directory=(path)
11
+ @images_directory = File.expand_path(path)
12
+
13
+ @success_image = "#{@images_directory}/pass.png"
14
+ @fail_image = "#{@images_directory}/fail.png"
15
+ @pending_image = "#{@images_directory}/pending.png"
16
+ end
17
+ end
9
18
 
10
- EXPIRATION_IN_SECONDS = 3
19
+ self.images_directory = "#{File.dirname(__FILE__)}/../../images/"
20
+
21
+ self.expiration_in_seconds = 3
22
+
23
+ end
11
24
 
12
25
  Autotest.add_hook :ran_command do |at|
13
26
  result = at.results.is_a?(Array) ? at.results.last : at.results.split("\n").last
@@ -29,11 +42,11 @@ module AutotestNotification
29
42
  end
30
43
 
31
44
  if @failures > 0 || @errors > 0
32
- notify "FAIL", msg, FAIL_IMAGE, @tests + @examples, @failures + @errors, 2
45
+ notify "FAIL", msg, Config.fail_image, @tests + @examples, @failures + @errors, 2
33
46
  elsif PENDING && @pendings > 0
34
- notify "Pending", msg, PENDING_IMAGE, @tests + @examples, @failures + @errors, 1
47
+ notify "Pending", msg, Config.pending_image, @tests + @examples, @failures + @errors, 1
35
48
  else
36
- notify "Pass", msg, SUCCESS_IMAGE, @tests + @examples, 0, -2
49
+ notify "Pass", msg, Config.success_image, @tests + @examples, 0, -2
37
50
  end
38
51
 
39
52
  puts "\e[#{code}m#{'=' * 80}\e[0m\n\n"
@@ -41,14 +54,14 @@ module AutotestNotification
41
54
  end
42
55
 
43
56
  class << self
44
- def notify(title, msg, img = SUCCESS_IMAGE, total = 1, failures = 0, priority = 0)
57
+ def notify(title, msg, img = Config.success_image, total = 1, failures = 0, priority = 0)
45
58
 
46
59
  img = Doom.image(total, failures) if DOOM_EDITION
47
60
  img = Buuf.image(title.downcase) if BUUF
48
61
 
49
62
  case RUBY_PLATFORM
50
63
  when /linux/
51
- Linux.notify(title, msg, img, total, failures)
64
+ Linux.notify(title, msg, img, total, failures, priority)
52
65
  when /darwin/
53
66
  Mac.notify(title, msg, img, total, failures, priority)
54
67
  when /cygwin/
@@ -71,3 +84,5 @@ module AutotestNotification
71
84
  end
72
85
  end
73
86
  end
87
+
88
+ %w{ linux mac windows cygwin doom buuf }.each { |x| require "autotest_notification/#{x}" }
@@ -2,7 +2,7 @@ module AutotestNotification
2
2
  class Buuf
3
3
  class << self
4
4
  def image(notification)
5
- "#{IMAGES_DIRECTORY}/buuf/#{notification}.png"
5
+ "#{Config.images_directory}/buuf/#{notification}.png"
6
6
  end
7
7
  end
8
8
  end
@@ -3,7 +3,7 @@ module AutotestNotification
3
3
  class << self
4
4
  def notify(title, msg, img)
5
5
  img = get_image_path(img).strip
6
- system "sncmd /m '#{title}' '#{msg}' '#{img}' /t #{EXPIRATION_IN_SECONDS}"
6
+ system "sncmd /m '#{title}' '#{msg}' '#{img}' /t #{Config.expiration_in_seconds}"
7
7
  end
8
8
 
9
9
  def get_image_path(img)
@@ -2,7 +2,7 @@ module AutotestNotification
2
2
  class Doom
3
3
  class << self
4
4
  def image(total, failures)
5
- "#{IMAGES_DIRECTORY}/doom/doom_#{percent(total, failures)}.png"
5
+ "#{Config.images_directory}/doom/doom_#{percent(total, failures)}.png"
6
6
  end
7
7
 
8
8
  def play_sound(total, failures)
@@ -2,9 +2,11 @@ module AutotestNotification
2
2
  class Linux
3
3
  class << self
4
4
 
5
- def notify(title, msg, img, total = 1, failures = 0)
5
+ def notify(title, msg, img, total = 1, failures = 0, priority = 0)
6
+ Config.expiration_in_seconds = 0 if failures > 0 && STICKY
7
+
6
8
  if has_notify?
7
- notify_send(title, msg, img)
9
+ notify_send(title, msg, img, priority)
8
10
  elsif has_zenity?
9
11
  zenity(title, msg, img)
10
12
  elsif has_kdialog?
@@ -17,23 +19,24 @@ module AutotestNotification
17
19
  protected
18
20
 
19
21
  def has_notify?
20
- system "which notify-send 2> /dev/null"
22
+ system "which notify-send > /dev/null 2>&1"
21
23
  end
22
24
 
23
25
  def has_kdialog?
24
- system "which kdialog 2> /dev/null"
26
+ system "which kdialog > /dev/null 2>&1"
25
27
  end
26
28
 
27
29
  def has_zenity?
28
- system "which zenity 2> /dev/null"
30
+ system "which zenity > /dev/null 2>&1"
29
31
  end
30
32
 
31
- def notify_send(title, msg, img)
32
- system "notify-send -t #{EXPIRATION_IN_SECONDS * 1000} -i #{img} '#{title}' '#{msg}'"
33
+ def notify_send(title, msg, img, priority = 0)
34
+ urgency = priority > 1 ? 'critical' : priority < 0 ? 'low' : 'normal'
35
+ system "notify-send -t #{Config.expiration_in_seconds * 1000} -i #{img} -u #{urgency} '#{title}' '#{msg}'"
33
36
  end
34
37
 
35
38
  def kdialog(title, msg, img)
36
- system "kdialog --title '#{title}' --passivepopup '#{msg}' #{EXPIRATION_IN_SECONDS}"
39
+ system "kdialog --title '#{title}' --passivepopup '<img src=\"#{img}\" align=\"middle\"> #{msg}' #{Config.expiration_in_seconds}"
37
40
  end
38
41
 
39
42
  def zenity(title, msg, img)
@@ -2,7 +2,7 @@ module AutotestNotification #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 1
4
4
  MINOR = 8
5
- TINY = 0
5
+ TINY = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -53,12 +53,12 @@ class TestLinux < Test::Unit::TestCase
53
53
  end
54
54
 
55
55
  def test_notify_send
56
- AutotestNotification::Linux.expects(:system).with('notify-send -t 3000 -i image \'title\' \'msg\'')
56
+ AutotestNotification::Linux.expects(:system).with('notify-send -t 3000 -i image -u normal \'title\' \'msg\'')
57
57
  AutotestNotification::Linux.notify_send("title", "msg", "image")
58
58
  end
59
59
 
60
60
  def test_notify_kdialog
61
- AutotestNotification::Linux.expects(:system).with('kdialog --title \'title\' --passivepopup \'msg\' 3')
61
+ AutotestNotification::Linux.expects(:system).with('kdialog --title \'title\' --passivepopup \'<img src="image" align="middle"> msg\' 3')
62
62
  AutotestNotification::Linux.kdialog("title", "msg", "image")
63
63
  end
64
64
 
@@ -68,17 +68,17 @@ class TestLinux < Test::Unit::TestCase
68
68
  end
69
69
 
70
70
  def test_has_zenity?
71
- AutotestNotification::Linux.expects(:system).with('which zenity 2> /dev/null')
71
+ AutotestNotification::Linux.expects(:system).with('which zenity > /dev/null 2>&1')
72
72
  AutotestNotification::Linux.has_zenity?
73
73
  end
74
74
 
75
75
  def test_has_notify?
76
- AutotestNotification::Linux.expects(:system).with('which notify-send 2> /dev/null')
76
+ AutotestNotification::Linux.expects(:system).with('which notify-send > /dev/null 2>&1')
77
77
  AutotestNotification::Linux.has_notify?
78
78
  end
79
79
 
80
80
  def test_has_kdialog?
81
- AutotestNotification::Linux.expects(:system).with('which kdialog 2> /dev/null')
81
+ AutotestNotification::Linux.expects(:system).with('which kdialog > /dev/null 2>&1')
82
82
  AutotestNotification::Linux.has_kdialog?
83
83
  end
84
84
 
@@ -88,4 +88,4 @@ class TestLinux < Test::Unit::TestCase
88
88
  AutotestNotification::Linux.expects(method).returns("title", "msg", "image", 1)
89
89
  AutotestNotification::Linux.notify("title", "msg", "image", 1, 1)
90
90
  end
91
- end
91
+ end
@@ -26,7 +26,7 @@ class TestAutotestNotification < Test::Unit::TestCase
26
26
  end
27
27
 
28
28
  def test_notify_when_os_is_linux
29
- AutotestNotification::Linux.expects(:notify).with(@title, @msg, @image, @total, @failures)
29
+ AutotestNotification::Linux.expects(:notify).with(@title, @msg, @image, @total, @failures, @priority)
30
30
  verify_to("linux")
31
31
  end
32
32
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carlosbrando-autotest-notification
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Brando
@@ -18,7 +18,7 @@ autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
20
 
21
- date: 2009-01-26 00:00:00 -08:00
21
+ date: 2009-02-01 00:00:00 -08:00
22
22
  default_executable:
23
23
  dependencies:
24
24
  - !ruby/object:Gem::Dependency