RSpecに色を付ける

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

もっとスマートな解

by かくたにさん