Permalink
Browse files

windows notifiaction

  • Loading branch information...
1 parent 51750c6 commit 02448b857520ebc84de6b3d266575c8a7a6aa1ec @stereobooster committed May 20, 2011
Showing with 51 additions and 0 deletions.
  1. +1 −0 Gemfile
  2. +24 −0 lib/guard/notifier.rb
  3. +19 −0 spec/guard/notifier_spec.rb
  4. +7 −0 spec/support/gems_helper.rb
View
@@ -15,4 +15,5 @@ end
if Config::CONFIG['target_os'] =~ /mswin|mingw/i
gem 'win32console', :require => false
gem 'rb-fchange', '>= 0.0.2', :require => false
+ gem 'rb-notifu', :require => false
end
View
@@ -15,6 +15,8 @@ def self.turn_on
require_growl
when /linux/i
require_libnotify
+ when /mswin|mingw/i
+ require_rbnotifu
end
end
@@ -29,6 +31,9 @@ def self.notify(message, options = {})
when /linux/i
require_libnotify # need for guard-rspec formatter that is called out of guard scope
Libnotify.show :body => message, :summary => title, :icon_path => image_path(image)
+ when /mswin|mingw/i
+ require_rbnotifu
+ RbNotifu.show :message => message, :title => title, :type => image_level(image)
end
end
end
@@ -54,6 +59,19 @@ def self.image_path(image)
end
end
+ def self.image_level(image)
+ case image
+ when :failed
+ :error
+ when :pending
+ :warn
+ when :success
+ :info
+ else
+ :info
+ end
+ end
+
def self.require_growl
require 'growl'
rescue LoadError
@@ -68,5 +86,11 @@ def self.require_libnotify
UI.info "Please install libnotify gem for Linux notification support and add it to your Gemfile"
end
+ def self.require_rbnotifu
+ require 'rbnotifu'
+ rescue LoadError
+ turn_off
+ UI.info "Please install rbnotifu gem for Windows notification support and add it to your Gemfile"
+ end
end
end
@@ -36,6 +36,21 @@
it { should_not be_enabled }
end
end
+
+ if windows?
+ if rbnotifu_installed?
+ it "uses rbnotifu on Windows" do
+ RbNotifu::show(
+ :message => "great",
+ :title => 'Guard',
+ :type => :info
+ )
+ end
+ else
+ it { should_not be_enabled }
+ end
+ end
+
end
describe ".turn_off" do
@@ -49,6 +64,10 @@
Libnotify.should_not_receive(:show)
subject.notify 'great', :title => 'Guard'
end
+ elsif windows? && rbnotifu_installed?
+ it "prevents the notifications" do
+
+ end
end
it { should_not be_enabled }
@@ -10,4 +10,11 @@ def libnotify_installed?
true
rescue LoadError
false
+end
+
+def rbnotifu_installed?
+ require 'rb-notifu'
+ true
+rescue LoadError
+ false
end

0 comments on commit 02448b8

Please sign in to comment.