骨のダイスを転がそう
2010-10-10
_ [Ruby][Windows] Jruby と Windows でカラー端末
nanoc3 という静的HTMLを生成するCMSがある。面白そうなので手元のWindows上で、jruby で試してみたら……
C:\home\hoge\sample>nanoc3 create_site test [1m [32m create [0m config.yaml [1m [32m create [0m Rakefile [1m [32m create [0m Rules [1m [32m create [0m content/index.html [1m [32m create [0m content/stylesheet.css [1m [32m create [0m layouts/default.html Created a blank nanoc site at 'test'. Enjoy!
化けた。これは、cmd.exe が、ANSI端末のカラー化に対応していないためだ。では、win32console を入れると良いらしい。ところが、win32console は、Cの拡張ライブラリを使ってるので、jruby では使えない。困った。
で、いろいろとググったところ ansicolor というのを発見。
ANSI color support for Java/JRuby on Windows
これじゃあ!! というわけで
jgem sources -a http://gems.github.com jgem install aslakhellesoy-ansicolor
で導入。jruby 1.5.3 で起動したところテストスクリプトが落ちる。ライブラリに
require 'java'
を追記してやる必要があった。で、nanoc3 で、端末に出力してる部分に
vi nanoc3/cli/logger.rb
begin #require 'Win32/Console/ANSI' if RUBY_PLATFORM =~/mswin|mingw/ require 'ansicolor' rescue LoadError @color = false end
としたらカラー出力成功!!せっかくだから本家にも報告したいんだがどうすりゃ良いんだろう。
[ツッコミを入れる]