terminal-notifier 1.5.1 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/terminal-notifier.rb +1 -1
- data/vendor/terminal-notifier/README.markdown +53 -12
- data/vendor/terminal-notifier/Ruby/Gemfile +2 -0
- data/vendor/terminal-notifier/Ruby/Gemfile.lock +23 -0
- data/vendor/terminal-notifier/Ruby/LICENSE +23 -0
- data/vendor/terminal-notifier/Ruby/README.markdown +48 -0
- data/vendor/terminal-notifier/Ruby/Rakefile +44 -0
- data/vendor/terminal-notifier/Ruby/bin/terminal-notifier +13 -0
- data/vendor/terminal-notifier/Ruby/lib/terminal-notifier.rb +87 -0
- data/vendor/terminal-notifier/Ruby/spec/terminal-notifier_spec.rb +72 -0
- data/vendor/terminal-notifier/Ruby/terminal-notifier.gemspec +26 -0
- data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.pbxproj +311 -0
- data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/vendor/terminal-notifier/Terminal Notifier.xcodeproj/xcshareddata/xcschemes/Terminal Notifier.xcscheme +140 -0
- data/vendor/terminal-notifier/Terminal Notifier/AppDelegate.h +4 -0
- data/vendor/terminal-notifier/Terminal Notifier/AppDelegate.m +339 -0
- data/vendor/terminal-notifier/Terminal Notifier/Terminal Notifier-Info.plist +36 -0
- data/vendor/terminal-notifier/Terminal Notifier/Terminal Notifier-Prefix.pch +7 -0
- data/vendor/terminal-notifier/Terminal Notifier/en.lproj/Credits.rtf +29 -0
- data/vendor/terminal-notifier/Terminal Notifier/en.lproj/InfoPlist.strings +2 -0
- data/vendor/terminal-notifier/Terminal Notifier/en.lproj/MainMenu.xib +3191 -0
- data/vendor/terminal-notifier/Terminal Notifier/main.m +6 -0
- data/vendor/terminal-notifier/Terminal.icns +0 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Info.plist +10 -10
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier +0 -0
- data/vendor/terminal-notifier/terminal-notifier.app/Contents/Resources/en.lproj/MainMenu.nib +0 -0
- metadata +35 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b08bd293cf43906f2a2981022d9437f0a6758210
|
4
|
+
data.tar.gz: d64d013c3d638884daace7310cbde29cf618f9a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1209ea24eb31275b6f1d6cc42b67c3ab2d557aa27d049d338f16a9f3fcef08a2cd084f5370501a4f412e587cef86bf9d5d193ba819b232dfbe00cef8dffd2340
|
7
|
+
data.tar.gz: 4e0f15e611525579d5117c39df8fdea49a0ffb8488a8bca7a41fbbfbb3aef93285d869739faf807ab5ca2855073ad02439312c6725ac13f579599f273a982c6c
|
data/lib/terminal-notifier.rb
CHANGED
@@ -25,7 +25,7 @@ module TerminalNotifier
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
# Sends a User Notification and returns
|
28
|
+
# Sends a User Notification and returns whether or not it was a success.
|
29
29
|
#
|
30
30
|
# The available options are `:title`, `:group`, `:activate`, `:open`,
|
31
31
|
# `:execute`, `:sender`, and `:sound`. For a description of each option see:
|
@@ -1,24 +1,28 @@
|
|
1
1
|
# terminal-notifier
|
2
2
|
|
3
3
|
terminal-notifier is a command-line tool to send Mac OS X User Notifications,
|
4
|
-
which are available in Mac OS X 10.8.
|
4
|
+
which are available in Mac OS X 10.8 and higher.
|
5
5
|
|
6
|
-
It is currently packaged as an application bundle, because `NSUserNotification`
|
7
|
-
does not work from a ‘Foundation tool’. [radar://11956694](radar://11956694)
|
8
6
|
|
9
|
-
|
10
|
-
currently no way to specify a custom icon for a notification. The only way to
|
11
|
-
use this tool with your own icon is to include a build of terminal-notifier
|
12
|
-
with your icon instead.
|
7
|
+
## Caveats
|
13
8
|
|
14
|
-
|
15
|
-
|
9
|
+
* The Notification Center _always_ uses the application’s own icon, there’s
|
10
|
+
currently no way to specify a custom icon for a notification. The only way to
|
11
|
+
use this tool with your own icon is to use the `-sender` option or include a
|
12
|
+
build of terminal-notifier with your icon and **a different bundle identifier**
|
13
|
+
instead. (If you do not change the bundle identifier, launch services will use
|
14
|
+
a cached version of the icon.)
|
15
|
+
|
16
|
+
However, you _can_ use unicode symbols and emojis. See the examples.
|
17
|
+
|
18
|
+
* It is currently packaged as an application bundle, because `NSUserNotification`
|
19
|
+
does not work from a ‘Foundation tool’. [radar://11956694](radar://11956694)
|
16
20
|
|
17
21
|
|
18
22
|
## Download
|
19
23
|
|
20
|
-
Prebuilt binaries
|
21
|
-
|
24
|
+
Prebuilt binaries are available from the
|
25
|
+
[releases section](https://github.com/alloy/terminal-notifier/releases).
|
22
26
|
|
23
27
|
Or if you want to use this from
|
24
28
|
[Ruby](https://github.com/alloy/terminal-notifier/tree/master/Ruby), you can
|
@@ -28,6 +32,10 @@ install it through RubyGems:
|
|
28
32
|
$ [sudo] gem install terminal-notifier
|
29
33
|
```
|
30
34
|
|
35
|
+
You can also install it via [Homebrew](https://github.com/mxcl/homebrew):
|
36
|
+
```
|
37
|
+
$ brew install terminal-notifier
|
38
|
+
```
|
31
39
|
|
32
40
|
## Usage
|
33
41
|
|
@@ -47,6 +55,14 @@ $ terminal-notifier -[message|group|list] [VALUE|ID|ID] [options]
|
|
47
55
|
|
48
56
|
This will obviously be a bit slower than using the tool without the wrapper.
|
49
57
|
|
58
|
+
Some examples are:
|
59
|
+
|
60
|
+
```
|
61
|
+
$ echo 'Piped Message Data!' | terminal-notifier -sound default
|
62
|
+
$ terminal-notifier -title '💰' -message 'Check your Apple stock!' -open 'http://finance.yahoo.com/q?s=AAPL'
|
63
|
+
$ terminal-notifier -group 'address-book-sync' -title 'Address Book Sync' -subtitle 'Finished' -message 'Imported 42 contacts.' -activate 'com.apple.AddressBook'
|
64
|
+
```
|
65
|
+
|
50
66
|
|
51
67
|
#### Options
|
52
68
|
|
@@ -59,6 +75,9 @@ option or the `-list` option.
|
|
59
75
|
|
60
76
|
The message body of the notification.
|
61
77
|
|
78
|
+
Note that if this option is omitted and data is piped to the application, that
|
79
|
+
data will be used instead.
|
80
|
+
|
62
81
|
-------------------------------------------------------------------------------
|
63
82
|
|
64
83
|
`-title VALUE`
|
@@ -73,6 +92,13 @@ The subtitle of the notification.
|
|
73
92
|
|
74
93
|
-------------------------------------------------------------------------------
|
75
94
|
|
95
|
+
`-sound NAME`
|
96
|
+
|
97
|
+
The name of a sound to play when the notification appears. The names are listed
|
98
|
+
in Sound Preferences. Use 'default' for the default notification sound.
|
99
|
+
|
100
|
+
-------------------------------------------------------------------------------
|
101
|
+
|
76
102
|
`-group ID`
|
77
103
|
|
78
104
|
Specifies the ‘group’ a notification belongs to. For any ‘group’ only _one_
|
@@ -120,6 +146,21 @@ Examples are:
|
|
120
146
|
|
121
147
|
-------------------------------------------------------------------------------
|
122
148
|
|
149
|
+
`-sender ID`
|
150
|
+
|
151
|
+
Specifying this will make it appear as if the notification was send by that
|
152
|
+
application instead, including using its icon.
|
153
|
+
|
154
|
+
Using this option fakes the sender application, so that the notification system
|
155
|
+
will launch that application when the notification is clicked. Because of this
|
156
|
+
it is important to note that you cannot combine this with options like
|
157
|
+
`-execute` and `-activate` which depend on the sender of the notification to be
|
158
|
+
‘terminal-notifier’ to perform its work.
|
159
|
+
|
160
|
+
For information on the `ID` see the `-activate` option.
|
161
|
+
|
162
|
+
-------------------------------------------------------------------------------
|
163
|
+
|
123
164
|
`-open URL`
|
124
165
|
|
125
166
|
Specifies a resource to be opened when the user clicks the notification. This
|
@@ -138,7 +179,7 @@ All the works are available under the MIT license. **Except** for
|
|
138
179
|
‘Terminal.icns’, which is a copy of Apple’s Terminal.app icon and as such is
|
139
180
|
copyright of Apple.
|
140
181
|
|
141
|
-
Copyright (C) 2012 Eloy Durán <eloy.de.enige@gmail.com>
|
182
|
+
Copyright (C) 2012-2013 Eloy Durán <eloy.de.enige@gmail.com>
|
142
183
|
|
143
184
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
144
185
|
this software and associated documentation files (the "Software"), to deal in
|
@@ -0,0 +1,23 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
terminal-notifier (1.5.1)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: https://rubygems.org/
|
8
|
+
specs:
|
9
|
+
bacon (1.1.0)
|
10
|
+
metaclass (0.0.1)
|
11
|
+
mocha (0.11.4)
|
12
|
+
metaclass (~> 0.0.1)
|
13
|
+
mocha-on-bacon (0.2.0)
|
14
|
+
mocha (>= 0.9.8)
|
15
|
+
|
16
|
+
PLATFORMS
|
17
|
+
ruby
|
18
|
+
|
19
|
+
DEPENDENCIES
|
20
|
+
bacon
|
21
|
+
mocha
|
22
|
+
mocha-on-bacon
|
23
|
+
terminal-notifier!
|
@@ -0,0 +1,23 @@
|
|
1
|
+
All the works are available under the MIT license. **Except** for
|
2
|
+
‘Terminal.icns’, which is a copy of Apple’s Terminal.app icon and as such is
|
3
|
+
copyright of Apple.
|
4
|
+
|
5
|
+
Copyright (C) 2012-2013 Eloy Durán <eloy.de.enige@gmail.com>
|
6
|
+
|
7
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
8
|
+
this software and associated documentation files (the "Software"), to deal in
|
9
|
+
the Software without restriction, including without limitation the rights to
|
10
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
11
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
12
|
+
so, subject to the following conditions:
|
13
|
+
|
14
|
+
The above copyright notice and this permission notice shall be included in all
|
15
|
+
copies or substantial portions of the Software.
|
16
|
+
|
17
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
23
|
+
SOFTWARE.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# TerminalNotifier
|
2
|
+
|
3
|
+
A simple Ruby wrapper around the [`terminal-notifier`][HOMEPAGE] command-line
|
4
|
+
tool, which allows you to send User Notifications to the Notification Center on
|
5
|
+
Mac OS X 10.8, or higher.
|
6
|
+
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
```
|
11
|
+
$ gem install terminal-notifier
|
12
|
+
```
|
13
|
+
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
For full information on all the options, see the tool’s [README][README].
|
18
|
+
|
19
|
+
Examples are:
|
20
|
+
|
21
|
+
```ruby
|
22
|
+
TerminalNotifier.notify('Hello World')
|
23
|
+
TerminalNotifier.notify('Hello World', :title => 'Ruby', :subtitle => 'Programming Language')
|
24
|
+
TerminalNotifier.notify('Hello World', :activate => 'com.apple.Safari')
|
25
|
+
TerminalNotifier.notify('Hello World', :open => 'http://twitter.com/alloy')
|
26
|
+
TerminalNotifier.notify('Hello World', :execute => 'say "OMG"')
|
27
|
+
TerminalNotifier.notify('Hello World', :group => Process.pid)
|
28
|
+
TerminalNotifier.notify('Hello World', :sender => 'com.apple.Safari')
|
29
|
+
TerminalNotifier.notify('Hello World', :sound => 'default')
|
30
|
+
|
31
|
+
TerminalNotifier.remove(Process.pid)
|
32
|
+
|
33
|
+
TerminalNotifier.list(Process.pid)
|
34
|
+
TerminalNotifier.list
|
35
|
+
```
|
36
|
+
|
37
|
+
|
38
|
+
## License
|
39
|
+
|
40
|
+
All the works are available under the MIT license. **Except** for
|
41
|
+
‘Terminal.icns’, which is a copy of Apple’s Terminal.app icon and as such is
|
42
|
+
copyright of Apple.
|
43
|
+
|
44
|
+
See [LICENSE][LICENSE] for details.
|
45
|
+
|
46
|
+
[HOMEPAGE]: https://github.com/alloy/terminal-notifier
|
47
|
+
[README]: https://github.com/alloy/terminal-notifier/blob/master/README.markdown
|
48
|
+
[LICENSE]: https://github.com/alloy/terminal-notifier/blob/master/Ruby/LICENSE
|
@@ -0,0 +1,44 @@
|
|
1
|
+
def version
|
2
|
+
@version ||= begin
|
3
|
+
plist = File.expand_path('../../Terminal Notifier/Terminal Notifier-Info.plist', __FILE__)
|
4
|
+
`/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' '#{plist}'`.strip
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def filename
|
9
|
+
"terminal-notifier-#{version}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def zipfile
|
13
|
+
"#{filename}.zip"
|
14
|
+
end
|
15
|
+
|
16
|
+
task :clean do
|
17
|
+
rm zipfile
|
18
|
+
rm_rf "vendor"
|
19
|
+
end
|
20
|
+
|
21
|
+
desc "Fetch latest build from the GitHub releases"
|
22
|
+
task :update_build do
|
23
|
+
unless File.exist?(zipfile)
|
24
|
+
sh "curl -L -O 'https://github.com/alloy/terminal-notifier/releases/download/#{version}/terminal-notifier-#{version}.zip'"
|
25
|
+
end
|
26
|
+
|
27
|
+
rm_rf "vendor"
|
28
|
+
mkdir "vendor"
|
29
|
+
|
30
|
+
sh "unzip -o -d vendor #{zipfile}"
|
31
|
+
mv "vendor/#{filename}", "vendor/terminal-notifier"
|
32
|
+
end
|
33
|
+
|
34
|
+
desc "Build gem"
|
35
|
+
task :gem => :update_build do
|
36
|
+
sh "gem build terminal-notifier.gemspec"
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "Run specs"
|
40
|
+
task :spec do
|
41
|
+
sh "bundle exec ruby spec/terminal-notifier_spec.rb"
|
42
|
+
end
|
43
|
+
|
44
|
+
task :default => :spec
|
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
if $0 == __FILE__
|
4
|
+
$:.unshift File.expand_path('../../lib', __FILE__)
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'terminal-notifier'
|
8
|
+
|
9
|
+
if !ARGV.include?("-message") && !STDIN.tty?
|
10
|
+
ARGV.push(*["-message", STDIN.read.chomp])
|
11
|
+
end
|
12
|
+
|
13
|
+
exec TerminalNotifier::BIN_PATH, *ARGV
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
|
3
|
+
module TerminalNotifier
|
4
|
+
BIN_PATH = File.expand_path('../../vendor/terminal-notifier/terminal-notifier.app/Contents/MacOS/terminal-notifier', __FILE__)
|
5
|
+
|
6
|
+
class UnsupportedPlatformError < StandardError; end
|
7
|
+
# Returns wether or not the current platform is Mac OS X 10.8, or higher.
|
8
|
+
def self.available?
|
9
|
+
@available ||= `uname`.strip == 'Darwin' && `sw_vers -productVersion`.strip >= '10.8'
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.execute(verbose, options)
|
13
|
+
if available?
|
14
|
+
command = [BIN_PATH, *options.map { |k,v| v = v.to_s; ["-#{k}", "#{Shellwords.escape(v[0,1])}#{v[1..-1]}"] }.flatten]
|
15
|
+
command = Shellwords.join(command) if RUBY_VERSION < '1.9'
|
16
|
+
result = ''
|
17
|
+
IO.popen(command) do |stdout|
|
18
|
+
output = stdout.read
|
19
|
+
STDOUT.print output if verbose
|
20
|
+
result << output
|
21
|
+
end
|
22
|
+
result
|
23
|
+
else
|
24
|
+
raise UnsupportedPlatformError, "terminal-notifier is only supported on Mac OS X 10.8, or higher."
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Sends a User Notification and returns whether or not it was a success.
|
29
|
+
#
|
30
|
+
# The available options are `:title`, `:group`, `:activate`, `:open`,
|
31
|
+
# `:execute`, `:sender`, and `:sound`. For a description of each option see:
|
32
|
+
#
|
33
|
+
# https://github.com/alloy/terminal-notifier/blob/master/README.markdown
|
34
|
+
#
|
35
|
+
# Examples are:
|
36
|
+
#
|
37
|
+
# TerminalNotifier.notify('Hello World')
|
38
|
+
# TerminalNotifier.notify('Hello World', :title => 'Ruby')
|
39
|
+
# TerminalNotifier.notify('Hello World', :group => Process.pid)
|
40
|
+
# TerminalNotifier.notify('Hello World', :activate => 'com.apple.Safari')
|
41
|
+
# TerminalNotifier.notify('Hello World', :open => 'http://twitter.com/alloy')
|
42
|
+
# TerminalNotifier.notify('Hello World', :execute => 'say "OMG"')
|
43
|
+
# TerminalNotifier.notify('Hello World', :sender => 'com.apple.Safari')
|
44
|
+
# TerminalNotifier.notify('Hello World', :sound => 'default')
|
45
|
+
#
|
46
|
+
# Raises if not supported on the current platform.
|
47
|
+
def notify(message, options = {}, verbose = false)
|
48
|
+
TerminalNotifier.execute(verbose, options.merge(:message => message))
|
49
|
+
$?.success?
|
50
|
+
end
|
51
|
+
module_function :notify
|
52
|
+
|
53
|
+
# Removes a notification that was previously sent with the specified
|
54
|
+
# ‘group’ ID, if one exists.
|
55
|
+
#
|
56
|
+
# If no ‘group’ ID is given, all notifications are removed.
|
57
|
+
def remove(group = 'ALL', verbose = false)
|
58
|
+
TerminalNotifier.execute(verbose, :remove => group)
|
59
|
+
$?.success?
|
60
|
+
end
|
61
|
+
module_function :remove
|
62
|
+
|
63
|
+
LIST_FIELDS = [:group, :title, :subtitle, :message, :delivered_at].freeze
|
64
|
+
|
65
|
+
# If a ‘group’ ID is given, and a notification for that group exists,
|
66
|
+
# returns a hash with details about the notification.
|
67
|
+
#
|
68
|
+
# If no ‘group’ ID is given, an array of hashes describing all
|
69
|
+
# notifications.
|
70
|
+
#
|
71
|
+
# If no information is available this will return `nil`.
|
72
|
+
def list(group = 'ALL', verbose = false)
|
73
|
+
output = TerminalNotifier.execute(verbose, :list => group)
|
74
|
+
return if output.strip.empty?
|
75
|
+
|
76
|
+
require 'time'
|
77
|
+
notifications = output.split("\n")[1..-1].map do |line|
|
78
|
+
LIST_FIELDS.zip(line.split("\t")).inject({}) do |hash, (key, value)|
|
79
|
+
hash[key] = key == :delivered_at ? Time.parse(value) : (value unless value == '(null)')
|
80
|
+
hash
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
group == 'ALL' ? notifications : notifications.first
|
85
|
+
end
|
86
|
+
module_function :list
|
87
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bacon'
|
3
|
+
require 'mocha'
|
4
|
+
require 'mocha-on-bacon'
|
5
|
+
|
6
|
+
Bacon.summary_at_exit
|
7
|
+
|
8
|
+
$:.unshift File.expand_path('../../lib', __FILE__)
|
9
|
+
require 'terminal-notifier'
|
10
|
+
|
11
|
+
describe "TerminalNotifier" do
|
12
|
+
it "executes the tool with the given options and properly escapes the message" do
|
13
|
+
command = [TerminalNotifier::BIN_PATH, '-message', '\[ZOMG] "OH YEAH"']
|
14
|
+
command = Shellwords.join(command) if RUBY_VERSION < '1.9'
|
15
|
+
IO.expects(:popen).with(command).yields(StringIO.new('output'))
|
16
|
+
TerminalNotifier.execute(false, :message => '[ZOMG] "OH YEAH"')
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns the result output of the command" do
|
20
|
+
TerminalNotifier.execute(false, 'help' => '').should == `'#{TerminalNotifier::BIN_PATH}' -help`
|
21
|
+
end
|
22
|
+
|
23
|
+
it "sends a notification" do
|
24
|
+
TerminalNotifier.expects(:execute).with(false, :message => 'ZOMG', :group => 'important stuff')
|
25
|
+
TerminalNotifier.notify('ZOMG', :group => 'important stuff')
|
26
|
+
end
|
27
|
+
|
28
|
+
it "removes a notification" do
|
29
|
+
TerminalNotifier.expects(:execute).with(false, :remove => 'important stuff')
|
30
|
+
TerminalNotifier.remove('important stuff')
|
31
|
+
end
|
32
|
+
|
33
|
+
it "by default removes all the notifications" do
|
34
|
+
TerminalNotifier.expects(:execute).with(false, :remove => 'ALL')
|
35
|
+
TerminalNotifier.remove
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns `nil` if no notification was found to list info for" do
|
39
|
+
TerminalNotifier.expects(:execute).with(false, :list => 'important stuff').returns('')
|
40
|
+
TerminalNotifier.list('important stuff').should == nil
|
41
|
+
end
|
42
|
+
|
43
|
+
it "returns info about a notification posted in a specific group" do
|
44
|
+
TerminalNotifier.expects(:execute).with(false, :list => 'important stuff').
|
45
|
+
returns("GroupID\tTitle\tSubtitle\tMessage\tDelivered At\n" \
|
46
|
+
"important stuff\tTerminal\t(null)\tExecute: rake spec\t2012-08-06 19:45:30 +0000")
|
47
|
+
TerminalNotifier.list('important stuff').should == {
|
48
|
+
:group => 'important stuff',
|
49
|
+
:title => 'Terminal', :subtitle => nil, :message => 'Execute: rake spec',
|
50
|
+
:delivered_at => Time.parse('2012-08-06 19:45:30 +0000')
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
54
|
+
it "by default returns a list of all notification" do
|
55
|
+
TerminalNotifier.expects(:execute).with(false, :list => 'ALL').
|
56
|
+
returns("GroupID\tTitle\tSubtitle\tMessage\tDelivered At\n" \
|
57
|
+
"important stuff\tTerminal\t(null)\tExecute: rake spec\t2012-08-06 19:45:30 +0000\n" \
|
58
|
+
"(null)\t(null)\tSubtle\tBe subtle!\t2012-08-07 19:45:30 +0000")
|
59
|
+
TerminalNotifier.list.should == [
|
60
|
+
{
|
61
|
+
:group => 'important stuff',
|
62
|
+
:title => 'Terminal', :subtitle => nil, :message => 'Execute: rake spec',
|
63
|
+
:delivered_at => Time.parse('2012-08-06 19:45:30 +0000')
|
64
|
+
},
|
65
|
+
{
|
66
|
+
:group => nil,
|
67
|
+
:title => nil, :subtitle => 'Subtle', :message => 'Be subtle!',
|
68
|
+
:delivered_at => Time.parse('2012-08-07 19:45:30 +0000')
|
69
|
+
}
|
70
|
+
]
|
71
|
+
end
|
72
|
+
end
|