terminal-notifier 1.2.0 → 1.3.0
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.markdown +2 -1
- data/bin/terminal-notifier +9 -0
- data/lib/terminal-notifier.rb +34 -9
- data/vendor/terminal-notifier/README.markdown +32 -3
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Info.plist +2 -2
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier +0 -0
- metadata +50 -8
data/README.markdown
CHANGED
@@ -21,10 +21,11 @@ Examples are:
|
|
21
21
|
```ruby
|
22
22
|
TerminalNotifier.notify('Hello World')
|
23
23
|
TerminalNotifier.notify('Hello World', :title => 'Ruby')
|
24
|
-
TerminalNotifier.notify('Hello World', :group => Process.pid)
|
25
24
|
TerminalNotifier.notify('Hello World', :activate => 'com.apple.Safari')
|
26
25
|
TerminalNotifier.notify('Hello World', :open => 'http://twitter.com/alloy')
|
27
26
|
TerminalNotifier.notify('Hello World', :execute => 'say "OMG"')
|
27
|
+
TerminalNotifier.notify('Hello World', :group => Process.pid)
|
28
|
+
TerminalNotifier.remove('previous Process.pid')
|
28
29
|
```
|
29
30
|
|
30
31
|
|
data/lib/terminal-notifier.rb
CHANGED
@@ -9,16 +9,26 @@ module TerminalNotifier
|
|
9
9
|
@available
|
10
10
|
end
|
11
11
|
|
12
|
-
|
13
|
-
# redirecting output to `/dev/null`.
|
14
|
-
def self.silent_execute(options)
|
12
|
+
def self.silence_stdout
|
15
13
|
stdout = STDOUT.clone
|
16
14
|
STDOUT.reopen(File.new('/dev/null', 'w'))
|
17
|
-
|
15
|
+
yield
|
18
16
|
ensure
|
19
17
|
STDOUT.reopen(stdout)
|
20
18
|
end
|
21
19
|
|
20
|
+
def self.execute_with_options(options)
|
21
|
+
execute(options.map { |k,v| ["-#{k}", v.to_s] }.flatten)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.execute(argv)
|
25
|
+
if available?
|
26
|
+
system(BIN_PATH, *argv)
|
27
|
+
else
|
28
|
+
raise "terminal-notifier is only supported on Mac OS X 10.8, or higher."
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
22
32
|
# Sends a User Notification and returns wether or not it was a success.
|
23
33
|
#
|
24
34
|
# The available options are `:title`, `:group`, `:activate`, `:open`, and
|
@@ -37,11 +47,26 @@ module TerminalNotifier
|
|
37
47
|
#
|
38
48
|
# Raises if not supported on the current platform.
|
39
49
|
def notify(message, options = {})
|
40
|
-
|
41
|
-
TerminalNotifier.silent_execute(options.merge(:message => message).map { |k,v| ["-#{k}", v.to_s] }.flatten)
|
42
|
-
else
|
43
|
-
raise "terminal-notifier is only supported on Mac OS X 10.8, or higher."
|
44
|
-
end
|
50
|
+
TerminalNotifier.silence_stdout { TerminalNotifier.verbose_notify(message, options) }
|
45
51
|
end
|
46
52
|
module_function :notify
|
53
|
+
|
54
|
+
# The same as `verbose`, but sends the output from the tool to STDOUT.
|
55
|
+
def verbose_notify(message, options = {})
|
56
|
+
TerminalNotifier.execute_with_options(options.merge(:message => message))
|
57
|
+
end
|
58
|
+
module_function :verbose_notify
|
59
|
+
|
60
|
+
# Removes a notification that was previously sent with the specified
|
61
|
+
# ‘group’ ID, if one exists.
|
62
|
+
def remove(group)
|
63
|
+
TerminalNotifier.silence_stdout { TerminalNotifier.verbose_remove(group) }
|
64
|
+
end
|
65
|
+
module_function :remove
|
66
|
+
|
67
|
+
# The same as `remove`, but sends the output from the tool to STDOUT.
|
68
|
+
def verbose_remove(group)
|
69
|
+
TerminalNotifier.execute_with_options(:remove => group)
|
70
|
+
end
|
71
|
+
module_function :verbose_remove
|
47
72
|
end
|
@@ -20,19 +20,38 @@ status of commands which are executed due to filesystem changes. (v3.0.0)
|
|
20
20
|
Prebuilt binaries, which are code-signed and ready to use, are available from
|
21
21
|
the [downloads section](https://github.com/alloy/terminal-notifier/downloads).
|
22
22
|
|
23
|
+
Or if you want to use this from
|
24
|
+
[Ruby](https://github.com/alloy/terminal-notifier/tree/master/Ruby), you can
|
25
|
+
install it through RubyGems:
|
26
|
+
|
27
|
+
```
|
28
|
+
$ [sudo] gem install terminal-notifier
|
29
|
+
```
|
30
|
+
|
23
31
|
|
24
32
|
## Usage
|
25
33
|
|
26
34
|
```
|
27
|
-
$ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -message VALUE [options]
|
35
|
+
$ ./terminal-notifier.app/Contents/MacOS/terminal-notifier -[message|group] [VALUE|ID] [options]
|
28
36
|
```
|
29
37
|
|
30
38
|
In order to use terminal-notifier, you have to call the binary _inside_ the
|
31
|
-
application
|
39
|
+
application bundle.
|
40
|
+
|
41
|
+
The Ruby gem, which wraps this tool, _does_ have a bin wrapper. If installed
|
42
|
+
you can simply do:
|
43
|
+
|
44
|
+
```
|
45
|
+
$ terminal-notifier -[message|group] [VALUE|ID] [options]
|
46
|
+
```
|
47
|
+
|
48
|
+
This will obviously be a bit slower than using the tool without the wrapper.
|
49
|
+
|
32
50
|
|
33
51
|
#### Options
|
34
52
|
|
35
|
-
|
53
|
+
At a minimum, you have to specify either the `-message` option or the `-remove`
|
54
|
+
option.
|
36
55
|
|
37
56
|
-------------------------------------------------------------------------------
|
38
57
|
|
@@ -53,6 +72,9 @@ The title of the notification. This defaults to ‘Terminal’.
|
|
53
72
|
Specifies the ‘group’ a notification belongs to. For any ‘group’ only _one_
|
54
73
|
notification will ever be shown, replacing previously posted notifications.
|
55
74
|
|
75
|
+
A notification can be explicitely removed with the `-remove` option, describe
|
76
|
+
below.
|
77
|
+
|
56
78
|
Examples are:
|
57
79
|
|
58
80
|
* The sender’s name to scope the notifications by tool.
|
@@ -61,6 +83,13 @@ Examples are:
|
|
61
83
|
|
62
84
|
-------------------------------------------------------------------------------
|
63
85
|
|
86
|
+
`-remove ID` **[required]**
|
87
|
+
|
88
|
+
Removes a notification that was previously sent with the specified ‘group’ ID,
|
89
|
+
if one exists.
|
90
|
+
|
91
|
+
-------------------------------------------------------------------------------
|
92
|
+
|
64
93
|
`-activate ID`
|
65
94
|
|
66
95
|
Specifies which application should be activated when the user clicks the
|
@@ -19,11 +19,11 @@
|
|
19
19
|
<key>CFBundlePackageType</key>
|
20
20
|
<string>APPL</string>
|
21
21
|
<key>CFBundleShortVersionString</key>
|
22
|
-
<string>1.
|
22
|
+
<string>1.3.0</string>
|
23
23
|
<key>CFBundleSignature</key>
|
24
24
|
<string>????</string>
|
25
25
|
<key>CFBundleVersion</key>
|
26
|
-
<string>
|
26
|
+
<string>4</string>
|
27
27
|
<key>DTCompiler</key>
|
28
28
|
<string></string>
|
29
29
|
<key>DTPlatformBuild</key>
|
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal-notifier
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
8
|
+
- 3
|
9
9
|
- 0
|
10
|
-
version: 1.
|
10
|
+
version: 1.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Eloy Duran
|
@@ -15,19 +15,61 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-07-
|
19
|
-
dependencies:
|
20
|
-
|
18
|
+
date: 2012-07-30 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: bacon
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: mocha
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: mocha-on-bacon
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
21
62
|
description:
|
22
63
|
email:
|
23
64
|
- eloy.de.enige@gmail.com
|
24
|
-
executables:
|
25
|
-
|
65
|
+
executables:
|
66
|
+
- terminal-notifier
|
26
67
|
extensions: []
|
27
68
|
|
28
69
|
extra_rdoc_files:
|
29
70
|
- README.markdown
|
30
71
|
files:
|
72
|
+
- bin/terminal-notifier
|
31
73
|
- lib/terminal-notifier.rb
|
32
74
|
- vendor/terminal-notifier/README.markdown
|
33
75
|
- vendor/terminal-notifier/terminal-notifier.app/Contents/_CodeSignature/CodeResources
|