RubyのTest::Unitの表示を色つきにしたかったら、多分、redgreenを使うのが一番スマートなんだと思う。
でも、私はTerm::ANSIColorを使った反転表示が気に入っているので、youpyの人のやつを使ってる。RedGreenでも設定すればできるのかもしれないけど、よく分かってない。
で、これをRSpecでもやりたいわけだ。youpyさんと同じく強引に、こんな感じになった。なんか、車輪を再発明してそうで嫌だね。
require 'term/ansicolor'
module Spec
module Runner
module Formatter
class BaseTextFormatter
include Term::ANSIColor
def initialize_with_color(output, dry_run = false, color = false)
initialize_without_color(output, dry_run, true)
end
alias_method :initialize_without_color, :initialize
alias_method :initialize, :initialize_with_color
def green(text)
on_green(text)
end
def red(text)
on_red(text)
end
end
end
end
end
いや、反転表示が欲しかったのと、それからRSpec on RailsのRakeタスクからRunnerにオプションを渡す方法が分からなかったもので。
どうしたらよいんでしょうか。
Rakefileに、
ENV['RSPECOPTS'] = '-c'
でビルトインの色はつきます。dRuby経由も0.7.6相当(trunkとか)では色がつくはず。
あ、そうか。環境変数ですか。ありがとうございます。これで醜いinitialize書き換えをしないで済みます。
でも、色は、反転のほうがいいなぁ。BaseTextFormatterを派生すればいいのか。調べてみます。
よくわからない理由により、コメントが即座には反映されないかもしれませんか゛、ボタンを押して元の画面に戻ってきたならたぶん正しく送信されています。
spec --colour オプションじゃダメっすか。