中川といいます。

Growl Notifier 1.0.1 をリリースしました。

  http://rubyforge.org/projects/growlnotifier/
  http://growlnotifier.rubyforge.org/

Growl Notifier は、Growl に notification を送るためのライブラリです。
Growl への notification がクリックされたときやタイムアウトしたときに、そのイベントを受け取れるのが特徴です。

コードベースは、LimeChat for OSX の Growl 関連のコードを切り出したものです。
それに、Eloy Duran が WebApp で、クリックイベントをブロックで受け取れるようにした改善を加えました。

LimeChat for OSX:
  http://github.com/psychs/limechat/tree/master

WebApp:
  http://github.com/alloy/webapp-app/tree/master

== インストール方法

gem install growlnotifier

== 環境

* Mac OS X 10.4 or 10.5
* Ruby 1.8
* RubyCocoa 0.13.1

== サンプル

require 'rubygems'
require 'growl'

class GrowlController < OSX::NSObject
  HELLO_TYPE = 'Hello message received'

  def init
    if super_init
      @g = Growl::Notifier.sharedInstance
      @g.delegate = self
      @g.register('GrowlSample', [HELLO_TYPE])
      @g.notify(HELLO_TYPE, 'Sticky', 'Hello world',
                :sticky => true, :click_context => Time.now.to_s )
      @g.notify(HELLO_TYPE, 'Timed out', 'Hello world',
                :click_context => Time.now.to_s )
      @count = 2
      self
    end
  end

  def growlNotifierClicked_context(sender, context)
    puts "Clicked: #{context}"
    checkCount
  end

  def growlNotifierTimedOut_context(sender, context)
    puts "Timed out: #{context}"
    checkCount
  end

  def checkCount
    @count -= 1
    OSX::NSApp.terminate(nil) if @count == 0
  end
end

g = GrowlController.alloc.init
OSX::NSApp.run

--
Satoshi Nakagawa