rb-notifu 0.0.1 → 0.0.2

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.
data/README.md CHANGED
@@ -16,10 +16,7 @@ There are three possible alternatives to Growl on windows:
16
16
  ```ruby
17
17
  require 'rb-notifu'
18
18
 
19
- RbNotifu::show({
20
- :message => "test",
21
- :type => :warn
22
- })
19
+ p RbNotifu::show :message => "test", :type => :warn
23
20
  ```
24
21
 
25
22
  ## Available options
@@ -37,8 +34,8 @@ RbNotifu::show({
37
34
  :nosound Do not play a sound when the tooltip is displayed
38
35
  :noquiet Show the tooltip even if the user is in the quiet period that follows his very first login (Windows 7 and up)
39
36
  :xp Use IUserNotification interface event when IUserNotification2 is available
40
- ```
41
37
 
42
38
  ## TODO
43
39
 
44
40
  - Use FFI instead of embedded executable file
41
+ - While showing message it blocks. Need to add thread and :noblock option
data/Rakefile CHANGED
@@ -1,2 +1,18 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+ RSpec::Core::RakeTask.new(:spec)
6
+ task :default => :spec
7
+
8
+ namespace(:spec) do
9
+ desc "Run all specs on multiple ruby versions (requires pik)"
10
+ task(:portability) do
11
+ %w[187 192 161].each do |version|
12
+ system "cmd /c echo -----------#{version}------------ & " +
13
+ "pik use #{version} & " +
14
+ "bundle install & " +
15
+ "rake spec"
16
+ end
17
+ end
18
+ end
@@ -1,61 +1,75 @@
1
- require 'pathname'
2
- module RbNotifu
3
-
4
- @executable = Pathname.new(__FILE__).parent.parent.realpath.to_s + '/bin/notifu.exe'
5
-
6
- @option_to_flag = {
7
- :type => "t",
8
- :display => "d",
9
- :title => "p",
10
- :message => "m",
11
- :icon => "i",
12
- :baloon => "e",
13
- :nosound => "q",
14
- :noquiet => "w",
15
- :xp => "xp"
16
- }
17
-
18
- @option_default = {
19
- :type => :info,
20
- :display => 3000,
21
- :title => "rb-notifu",
22
- :message => " ",
23
- :icon => false,
24
- :baloon => false,
25
- :nosound => false,
26
- :noquiet => false,
27
- :xp => false
28
- }
29
-
30
- #:type The type of message to display values are:
31
- # info The message is an informational message
32
- # warn The message is an warning message
33
- # error The message is an error message
34
- #:display The number of milliseconds to display (omit or 0 for infinit)
35
- #:title The title (or prompt) of the ballon
36
- #:message The message text
37
- #:icon Specify an icon to use ("parent" uses the icon of the parent process)
38
- #:baloon Enable ballon tips in the registry (for this user only)
39
- #:nosound Do not play a sound when the tooltip is displayed
40
- #:noquiet Show the tooltip even if the user is in the quiet period that follows his very first login (Windows 7 and up)
41
- #:xp Use IUserNotification interface event when IUserNotification2 is available
42
- def self.show(options = {})
43
- flags = ""
44
- @option_default.each do |key, value|
45
- flag = options.key?(key) ? options[key] : value
46
- if flag
47
- flags += "/" + @option_to_flag[key] + " " + self.escape(flag) + " "
48
- end
49
- end
50
- system "#{@executable} #{flags}"
51
- end
52
-
53
- def self.escape(value)
54
- if value
55
- return '"' + value.to_s.gsub('"','\"') + '"'
56
- else
57
- return ''
58
- end
59
- end
60
-
61
- end
1
+ require 'pathname'
2
+ module RbNotifu
3
+
4
+ @executable = Pathname.new(__FILE__).parent.parent.realpath.to_s + '/bin/notifu.exe'
5
+
6
+ @option_to_flag = {
7
+ :type => "t",
8
+ :display => "d",
9
+ :title => "p",
10
+ :message => "m",
11
+ :icon => "i",
12
+ :baloon => "e",
13
+ :nosound => "q",
14
+ :noquiet => "w",
15
+ :xp => "xp"
16
+ }
17
+
18
+ @option_default = {
19
+ :type => :info,
20
+ :display => 3000,
21
+ :title => "rb-notifu",
22
+ :message => " ",
23
+ :icon => false,
24
+ :baloon => false,
25
+ :nosound => false,
26
+ :noquiet => false,
27
+ :xp => false
28
+ }
29
+
30
+ #Params:
31
+ # :type The type of message to display values are:
32
+ # info The message is an informational message
33
+ # warn The message is an warning message
34
+ # error The message is an error message
35
+ # :display The number of milliseconds to display (omit or 0 for infinit)
36
+ # :title The title (or prompt) of the ballon
37
+ # :message The message text
38
+ # :icon Specify an icon to use ("parent" uses the icon of the parent process)
39
+ # :baloon Enable ballon tips in the registry (for this user only)
40
+ # :nosound Do not play a sound when the tooltip is displayed
41
+ # :noquiet Show the tooltip even if the user is in the quiet period that follows his very first login (Windows 7 and up)
42
+ # :xp Use IUserNotification interface event when IUserNotification2 is available
43
+ #
44
+ #Returns
45
+ # 0 Registry was succesfully edited. Only returned when /e is used with no other argument.
46
+ # 1 There was an error in one the argument or some required argument was missing.
47
+ # 2 The balloon timed out waiting. The user didn't click the close button or the balloon itself.
48
+ # 3 The user clicked the balloon.
49
+ # 4 The user closed the balloon using the X in the top right corner.
50
+ # 5 IUserNotification class object or interface is not supported on this version of Windows.
51
+ # 6 The user clicked with the right mouse button on the icon, in the system notification area (Vista and later)
52
+ # 7 The user clicked with the left mouse button on the icon, in the system notification area (Vista and later)
53
+ # 8 A new instance of Notifu dismissed a running instace
54
+ # 255 There was some unexpected error.
55
+ def self.show(options = {})
56
+ flags = ""
57
+ @option_default.each do |key, value|
58
+ flag = options.key?(key) ? options[key] : value
59
+ if flag
60
+ flags += "/" + @option_to_flag[key] + " " + self.escape(flag) + " "
61
+ end
62
+ end
63
+ system "#{@executable} #{flags}"
64
+ return $?.exitstatus
65
+ end
66
+
67
+ def self.escape(value)
68
+ if value
69
+ return '"' + value.to_s.gsub('"','\"') + '"'
70
+ else
71
+ return ''
72
+ end
73
+ end
74
+
75
+ end
@@ -1,3 +1,3 @@
1
1
  module RbNotifu
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -26,4 +26,7 @@ Gem::Specification.new do |s|
26
26
  ]
27
27
  #s.executables = ["notifu.exe", "notifu64.exe"]
28
28
  s.require_paths = ["lib"]
29
+ s.add_development_dependency 'bundler'
30
+ s.add_development_dependency 'rspec'
31
+
29
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb-notifu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,7 +11,29 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 2011-05-20 00:00:00.000000000 +03:00
13
13
  default_executable:
14
- dependencies: []
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: &2981976 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *2981976
26
+ - !ruby/object:Gem::Dependency
27
+ name: rspec
28
+ requirement: &1989096 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *1989096
15
37
  description: Notification system for windows. Trying to be Growl. Ruby wrapper around
16
38
  notifu (http://www.paralint.com/projects/notifu/index.html)
17
39
  email: