Tag Archives: growl

Growlでautospecの結果を表示

Growlの準備

  • Growlをインストール
  • インストーラと一緒に入っているExtra/growlnotify/install.shを実行する
  • autotest + growl で楽々テストを参考に、Growlが「受信される通知を聞く」、「リモートアプリケーション登録を許可」するように環境設定パネルから設定する。

gem類の準備

バージョンも併記した。

まずはgemの準備。

$sudo gem install ZenTest # 4.1.1
$sudo gem install redgreen # 1.2.2, autospecの結果をコンソールで赤と緑で塗り分けてくれる。Growlだけなら不要
$sudo gem install ruby-growl # 1.0.1

RSpecとRSpec on Railsのインストール。

ruby script/plugin install git://github.com/dchelimsky/rspec.git -r 'refs/tags/1.2.7' # 1.2.7
ruby script/plugin install git://github.com/dchelimsky/rspec-rails.git -r 'refs/tags/1.2.7.1' # 1.2.7.1
ruby script/generate rspec

画像を拝借

cd ~
curl http://blog.internautdesign.com/files/rails_fail.png > .rails_fail.png
curl http://blog.internautdesign.com/files/rails_ok.png > .rails_ok.png

moroさんが勉強会で使ってたチェックとバツマークのが欲しいんだけど、どこにあるんだろう?

~/.autotestの編集

ZenTestをインストールしたときについてくる設定ファイルのひな形をコピー。 x.x.xはインストールしたZenTestのバージョンで、ここでは4.1.1。

$ cp /Library/Ruby/Gems/1.8/gems/ZenTest-x.x.x/example_dot_autotest.rb ~/.autotest
$ chmod 644 ~/.autotest

以下のように設定する


# -*- ruby -*-

# require 'autotest/autoupdate'
# require 'autotest/once'
# require 'autotest/rcov'
# require 'autotest/restart'
# require 'autotest/timestamp'

# Autotest::AutoUpdate.sleep_time = o
# Autotest::AutoUpdate.update_cmd = o
# Autotest::RCov.command = o
# Autotest::RCov.pattern = o

ok_img = "~/.rails_ok.png"
ng_img = "~/.rails_fail.png"

module Autotest::Growl
  def self.growl title, msg, img=ok_image, pri=0, sticky=""
    msg += " at #{Time.now.strftime('%Y-%m-%d %H:%M:%S')}"
    # autotestは使わないので、-nで指定するアプリケーション名はautospecで良いと思う
    # -Hで通知先のGrowlのあるホスト名を指定する
    system "growlnotify -n autospec -H localhost --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}"
  end

  Autotest.add_hook :ran_command do |at|
    results = at.results.last
    examples = results[/(\d+)\s+examples?/].to_i  # テストの総数
    failures = results[/(\d+)\s+failures?/].to_i  # 失敗の数
    errors = results[/(\d+)\s+errors?/].to_i # エラーの数
    if examples >= 0
      if failures > 0 || errors > 0
        growl "Tests Failed", "#{examples} examples, #{failures} failures, and #{errors} errors", ng_img, 2
      else
        growl "Tests Passed", "#{examples} examples, #{failures} failures, and #{errors} errors", ok_img, -2
      end
    else
      growl "Tests Errored", "errors", ng_img, 2
    end
  end
end

実行

$ cd RAILS_ROOT
$ autospec

備考

いくつかサイトを巡って試行錯誤を繰り返したけど、とりあえず以上の作業のみで動作している。結構古い情報もあるみたいだし、autotestとautospecでは~/.autotestでテストの結果を拾う処理に差異があるのでご注意を。

ところでgrowlnotifyでは-Hオプションで通知先のGrowlのホスト名を指定しているけど、うまくやれば,別サーバ上で作業しているときのテスト結果をローカルのGrowlに通知なんてこともできるのかな?ちょっと余裕があるときにでも試してみたい。

参考サイト

変更履歴

2009-08-19

  • 30行目の行末からカンマ(,)を削除。
  • RSpec/Rspec on Railsのインストール時にバージョン指定を追記(これがないとtrunkをインストールしてしまう)。

2010-02-13

  • 成功.失敗時の画像ファイル名を変数で指定するように修正

Fw:Cocoaで文字エンコーディングの自動判別プログラムを書いてみました

藤棚工房別棟 -徒然-にて文字エンコーディングの自動判別機能を追加するNSStringのカテゴリが公開されていた。

ちなみに、確かOSXならPerl5.8が最初から入っていて、それに標準で付属してるEncode.pmを使えばJcode.pmと同等、もしくはCJKも扱えるのでそれ以上の対応が望めるかもデス。


Re:Apple、iBookおよびPowerBookのバッテリ180万台をリコール

スラドより。

バッテリのモデルとシリアルを確認してみたら該当したので、交換の申し込みをしておいた。


bbs2ch readerとGMail Managerが衝突

bbs2ch readerにGMail Managerが入っているとスレッドでのミドルクリックが効かないというバグが登録されていた。なるほど、原因はこれだったのか。

というわけで、Gmail Notifierに戻す。


iCalでGoogle Calenderを見る

HOWTO: Subscribe to a Google Calendar using iCalに書いてあるとおり。

ただしiCalでイベントを追加しても Google Calenderには追加されないとのこと。うーん、それだとちょっと使えないなぁ。


2chの各板のURIにこそURN使えば便利じゃない?

サーバー移転のたびにブックマークを書き換えるのは面倒だし、基本的にサーバー名以外は何も変わらないのだし。というか、サーバー移転でユーザーが惑わされるのはサービスとして良くない。

例えば2chブラウザで実装するなら、URN(urn:2ch:mac:1147286809といった感じ)でブックマークしておいて、適宜2chの用意するダウンロードした板のURN-URL変換マップをもとに、datやらsubject.txtをダウンロードするとか。

ところで、URNの登録って、どうすればいいんだろう?


WindowsとMacでのiTunes

Mac版だと登録してあるメディアのファイル名をFinderなどから変更しても自動的にそれが反映されるけど、Windows版だと反映されずにファイルが存在しないと怒られる。Mac版ではAliasHandleとかいうのを使って実現しているっぽい(Cocoaはさっぱり!を参照)。

Carbonはわからないなぁ。


Google Spreadsheet

今のところグラフ作成機能は無いらしいけど、SVGを使って実装してきそうな予感。って、そもそもSVGに対応したブラウザがまだ少ないか。


bbs2chreader-0.2.10で書き込めない

0.2.10にアップデートしてから、投稿ボタンを押してもクッキー云々が表示されるだけで書き込めなくなった。

修正方法はbbs2chreaderまとめblog2の「ちゃんねるに書けなくなった人の改造方法は」ってところに書いてある。

その修正をしたものをアップしておくので、自己責任で使ってみてくださいな。

使い方は、.jarに改名して、プロファイル\extensions{0B9D558E-6983-486b-9AAD-B6CBCD2FC807}\chromeに置けばOK。

誰かがSourceForgeのバグトラッキングに登録してくれた模様。なので、緊急の内容だし、開発者が気づき次第修正版が出る予感。

0.2.11がリリースされたので、アップしてたファイルは削除しました。


青いカエル、これは何のための拡張?

Mozilla Add-onsで見つけたけど、何の拡張なのかわからない。 とりあえずインストールした人のコメントを読む限り、入れない方がよさそうだ。