10.6.8 を実行している Mac で Ruby のうなる通知に応答する方法を見つけようとしています。
これは、guard を使用して記述した基本的なコードです。
require 'growl'
require "pathname"
guard 'shell' do
watch(/(.*)/) do |m|
puts "----------"
path = Pathname.new(m[0])
puts "Pathname = #{path}"
notification = Growl.new
notification.appIcon = "Finder"
if path.exist?
notification.message = "File updated: #{path}"
else
notification.message = "File deleted: #{path}"
end
notification.run
end
end
ユーザーがうなり声の通知をクリックすると、ルビーコールバックがトリガーされるようにしたいと思います(ファイル名にタイムスタンプを追加するなど)。
Growl サイトで見つけたすべてのチュートリアルは、直接 Cocoa プログラミング用です。Ruby でこれを行う方法がわからない場合は、袖をまくり上げてそれを行うと思いますが、Ruby で行うのは簡単なはずです。
最終的には、これを Linux と Windows でも実行したいと考えています。そのため、Objective-C や AppleScript でこれを書くことを避けてきました。
http://lostechies.com/derickbailey/2011/01/23/responding-to-growl-notification-clicks-and-timeouts-with-macruby/のようなことをしたいのですが、macruby の代わりにプレーンなルビーを除きます。