回应点击红宝石中的咆哮通知

时间:2012-05-09 17:59:53

标签: ruby cocoa guard growl growlnotify

我正在试图弄清楚如何在运行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通知时,它会触发ruby回调(比如在文件名后加一个时间戳)。

我在growl site上找到的所有教程都是针对直接Cocoa编程的。如果我无法弄清楚如何在Ruby中做到这一点,我想我会卷起袖子去做,但看起来在Ruby中应该很容易。

我最终还是希望它能在Linux和Windows上运行,这就是为什么我一直在回避用Objective-C或AppleScript编写它。

除了普通红宝石而不是macruby之外,我想做类似http://lostechies.com/derickbailey/2011/01/23/responding-to-growl-notification-clicks-and-timeouts-with-macruby/的事情。

1 个答案:

答案 0 :(得分:0)

我不认为growl宝石能够做到这一点。 Growl website链接指向您可能想要查看的另一个名为groem的gem。它似乎完全支持callbacks