LoginSignup
5
5

More than 5 years have passed since last update.

Ruby で Growl に通知するサンプルのつづき

Last updated at Posted at 2014-07-21

以前に Ruby で Growl に通知するサンプル という投稿をしたが、実際のアプリで Macbook Pro から Windows への通知をしようと思ったら上手く動かなかった。

localhost では OK でネットワーク経由では NG という状況で、Growl for Windows の設定をあれこれ弄ってもダメ。でもコマンドラインツールからはちゃんと通知できる、ということでプログラムを見なおしたところ register メソッドを発行しないとダメなことに気づいた。

で、notify の前に register メソッドを発行すれば良いかと思ったが、毎回 register されて Growl for Windows に通知が出てしまって煩わしいため、以下の様なコードで対処した。

growl.rb
require 'ruby-growl'

class Growl
  def initialize(ip, name = 'ruby-growl')
    @g = ::Growl::GNTP.new ip, name
    @g.password = 'PASSWORD'
    @g.add_notification "notification", "#{name}"

  end

  def notify(title, message, url)
    begin
      @g.notify "notification", title, message, 0, true, nil, url
    rescue Growl::GNTP::UnknownApplication
      @g.register
      retry
    end
  end
end

今更 growl 使う人は少ないのかもしれないけど、何かの参考になれば。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5