Growlにアプリケーションの存在を教える。これを済ませてないと通知は行われない。
GrowlNotifierを作る。
n = GrowlNotifier.new(アプリケーション名, [イベント名の配列], デフォルトイベント(nilでいい), アイコン(NSImageのインスタンスを渡せばよいらしい) ) n.register #登録実行
GrowlNotifier#registerは何度実行しても大丈夫。アプリケーションの起動時に行えばOK。
イベント名は好きに付けられるが、Growlの環境設定でユーザの目に触れるのでわかりやすい名前を付けるべき。
NSImageのインスタンスを作って、GrowlNotifier.newの第4引数に渡せばいいんだけど、これをどうやって作るのか。
案外簡単。
icon = OSX::NSImage.alloc.initWithContentsOfFile(ファイル名)
Preview.appで開けるのなら何でもOKな気がする。とりあえずJPEGは通った。
GrowlNotifier#notify。
n.notify( イベント名, タイトル, 内容, アイコン(NSImage), アプリケーションのアイコン(NSImage), 貼り付かせるか(True/False), 優先度(-2..2) )
イベント名、タイトル、内容以外は空でも良い。
同一フォルダにicon.pngとGrowl.rbを保存し、RubyCocoaを入れた上で実行すること。
#!/usr/bin/env ruby
require 'Growl'
#アイコンに使うNSImageを生成
icon = icon=OSX::NSImage.alloc.initWithContentsOfFile('icon.png')
#GrowlNotifierを生成
n = GrowlNotifier.new('GrowlTestByRuby', ['Ruby1', 'Ruby2'], nil, icon)
#登録実行
n.register
#Ruby1イベントを通知する
n.notify('Ruby1', 'Ruby1イベント', 'これはRubyからのGrowl通知です(1)')
#Ruby2イベントを通知する
n.notify('Ruby2', 'Ruby2イベント', 'これはRubyからのGrowl通知です(2)')