TerminalNotifier - Guard Style
A simple Ruby wrapper around the terminal-notifier
command-line
tool, which allows you to send User Notifications to the Notification Center on
Mac OS X 10.8, or higher.
This version has 4 different icons included for each status that
Guard supports:
- Failed
- Notify
- Pending
- Success
Installation
This version depends on the official terminal-notifier
.
Install it with Homebrew or see the official
Installation instructions.
$ brew install terminal-notifier
Then, install the gem
$ gem install terminal-notifier-guard
Or add it to your Gemfile:
gem 'terminal-notifier-guard', '~> 1.6.1'
Then, add the notifier to your Guardfile:
notification :terminal_notifier
Configure Binary Path
You can override the binary path detection with an environment variable. This solves a problem where the default binary found by which
is the Ruby gem version of terminal-notifier
. This version is slow, especially in a Bundler environment.
In this scenario we would much rather use the version installed by Homebrew at /usr/local/bin/terminal-notifier
which is noticeably faster.
This commit allows us to set an environment variable to explicitly specify the binary to use, like this:
export TERMINAL_NOTIFIER_BIN=/usr/local/bin/terminal-notifier
When using guard to monitor test results in TDD, speed is of the essence. Using the right binary can save a half second or more during each test run, which doesn't seem like much but makes a big difference in productivity.
OSX 10.8 users
As of version 1.6.1
, we no longer bundle notifiers binaries in this gem. Please revert to
version 1.5.3
for OSX 10.8 support.
Usage
You could also use the notifier directly.
Examples are:
TerminalNotifier::Guard.notify('Hello World')
TerminalNotifier::Guard.notify('Hello World', :title => 'Ruby', :subtitle => 'Programming Language')
TerminalNotifier::Guard.notify('Hello World', :activate => 'com.apple.Safari')
TerminalNotifier::Guard.notify('Hello World', :open => 'http://twitter.com/alloy')
TerminalNotifier::Guard.notify('Hello World', :execute => 'say "OMG"')
TerminalNotifier::Guard.notify('Hello World', :group => Process.pid)
TerminalNotifier::Guard.remove(Process.pid)
TerminalNotifier::Guard.list(Process.pid)
TerminalNotifier::Guard.list
TerminalNotifier::Guard.failed('This did not go well.')
TerminalNotifier::Guard.success('This did not go bad.')
TerminalNotifier::Guard.pending('This needs some work still')
License
All the works are available under the MIT license.
See LICENSE for details.
Contributors & Thanks to
- @alloy (For the terminal-notifier)
- @railsme (For a clean way to test for OSX version #15)
- @jamilbx (For support for local terminal-notifier command #8)
- @mattbrictson (For adding support for the TERMINAL_NOTIFIER_BIN env var)
- @goronfreeman (For the lovely icon set!)
- @bbonamin (For fixing the license issue)
- @croeck (For fixing the binary detection)