2008-08-24
■[ruby][cocoa][mac]RubyからGrowlに通知するためのライブラリ、Meowをちょっと使ってみたので自分メモ
Route 477 - RubyからGrowlに通知するためのライブラリ、Meow (とGrowlNotifier)
基本的なことはリンク先を参照して貰った方がいいとは思いますが、一応書いておきます。
インストール
Meowはライブラリ内でRubyCocoaを使ってGrowlを操作してるみたいなのでRubyCocoaが必要です。
ライブラリがRubyCocoaを使うだけなのでMeowを使ったスクリプト自体はRubyCocoaである必要はないです。
僕が使っているMacBookはRubyはデフォルトのまま使ってますし、LeopardなのでRubyCocoaもデフォルトでインストール済みです。
なので単にMeowを
するだけで終了。*2
使ってみた
以下のドキュメントを参照してみてください。
スタイルの設定は?
スクリプト内からの指定はできないっぽいです。
meep = Meow.new('Meow Test') meep.notify('Click Me', 'Go to Google!') do system "open -a Safari http://www.google.com/" end
上記の様なスクリプトを一回実行したあと、Growlの環境設定を開きます。
すると、
newするときに与えた文字列と同じものが登録されているのでそこから指定すればいいようです。
アイコンの設定
クラスメソッドの import_imageの引数に使いたい画像のパスを渡せば良いみたいです。
iconImage = Meow.import_image("/Applications/NatsuLion.app/Contents/Resources/NatsuLion_error.icns") meep.notify('NatsuLion', 'I am crying' ,{:icon => iconImage,:sticky => true,:priority => 2}) do system "open -a Safari http://www.google.com/" end
"~/Library/hogehoge/images/google.png"
"/Users/ユーザ名/Library/hogehoge/images/google.png"
みたいに直しておくと大丈夫っぽいです。
ちなみに、画像ファイルのパスをサクッと知るためにAmCopyPathCMXを便利に使わせて貰ってます。
アイコンの指定はnotifyを実行する時に指定してもいいですし、newするときに
iconImage = Meow.import_image("google.png") meepNotice = Meow.new('Meow Testinggggg','Notice',iconImage)
みたいに第三引数として渡してもいいみたいです。
第二引数は通知の名前です。
通知をクリックした時の処理
ブロック内に書けば良いっぽいです。
meep.notify('Click Me', 'Go to Google!') do system "open -a Safari http://www.google.com/" end
上記例では通知をクリックすることでSafariで http://www.google.com/ を開きます。
当たり前ですが、callbackを使うと通知をクリックされるまでスクリプトの実行プロセスが終わらないです。
優先度の設定
MeowでGrowlの優先度の指定をしようとしてドキュメント上のサンプルの用に
:priority => :very_high
と書いてもダメです。:very_highは最新の2.0では定義されてないっぽいです。*5
だから、定義されている
:priority => :very_low
としてもダメでした。
結局
:priority => -2
と数字でしていしてやるとうまく優先度を指定できました。
指定できる範囲は0を標準として-2〜2までの5段階です。
複数のオプションを追加する。
一つだけ追加する場合は以下でOKです。
meep.notify('Click Me', 'Go to Google!',:sticky => true) do system "open -a Safari http://www.google.com/" end
さらに優先度の設定もしたいって時はこんな感じです。
meep.notify('Click Me', 'Go to Google!',{:sticky => true, :priority => 2}) do system "open -a Safari http://www.google.com/" end
スクショの撮影に使ったのは
優先度が文字で表示されてて個人的に気に入ってます。
今調べたら配布先が無くなってました。残念です。
スクリプトはこんな感じです。
#!/usr/bin/ruby # # Created by on 2008-08-23. # Copyright (c) 2008. All rights reserved. require "rubygems" require "meow" meep = Meow.new('Meow Test') meep.notify('Click Me', 'Test 1') meep.notify('Click Me', 'Go to Google!',:sticky => true) do system "open -a Safari http://www.google.com/" end iconImage = Meow.import_image("/Applications/NatsuLion.app/Contents/Resources/NatsuLion_error.icns") meep.notify('NatsuLion', 'I am crying' ,{:icon => iconImage,:sticky => true,:priority => 2}) do system "open -a Safari http://www.google.com/" end iconImage = Meow.import_image("/hatena_logo.png") meep.notify('Click Me', 'Do it!' ,{:icon => iconImage,:sticky => true,:priority => 2}) do system "open -a Safari http://www.google.com/" end iconImage = Meow.import_image("/google.png") meep.notify('Click Me', 'Go to Google!' ,{:icon => iconImage,:sticky => true,:priority => 1}) do system "open -a Safari http://www.google.com/" end iconImage = Meow.import_image("/tumblr_logo.png") meep.notify('Tumblr', 'Low priority' ,{:icon => iconImage,:sticky => false,:priority => -2})
感想
RubyからGrowlを使う為にruby-growlを試したことがありますがこれはスティッキーの設定がうまく指定できなかった記憶があります。
なのでGrowlに同梱されてるgrowlnotifyを別途インストールして
`/usr/local/bin/growlnotify -n Stewie "POST GoogleBookmark" -m "てすと〜" --image google.jpg -p 2 -s`
なんてことをしていましたが、Leopard上で使う分にはMeowを使った方がOnClickの挙動も指定できるので自由度もあって使いやすいと思いました。
- 15 http://reader.livedoor.com/reader/
- 12 http://veadardiary.blog29.fc2.com/blog-entry-1694.html
- 9 http://java.cocolog-nifty.com/blog/2008/03/safarigesture_7281.html
- 7 http://www.google.com/reader/view/
- 7 http://www.google.com/search?client=safari&rls=en&q=safari マウスジェスチャー&ie=UTF-8&oe=UTF-8
- 6 http://www.google.com/search?client=safari&rls=ja-jp&q=safari+外部リンク+タブで開く&ie=UTF-8&oe=UTF-8
- 6 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=SuperDrag+Extension&num=50
- 5 http://logic.stepserver.jp/data/archives/45.html
- 5 http://search.yahoo.co.jp/search?p=safari+マウスジェスチャ&ei=UTF-8&fr=moz2&x=wrt
- 5 http://www.google.com/search?client=safari&rls=ja-jp&q=SafariGestures&ie=UTF-8&oe=UTF-8







