Ruby 1.9.1を使って,http://journal.mycom.co.jp/articles/2006/12/22/wirble/でもhttp://pablotron.org/software/wirble/でもいいのですが,Wirbleをインストールしてから,~/.irbrcに所定の記述をし,irbを実行すると,大量のエラーメッセージが出てきまして,プロンプトが出ずに終了しました.
エラーの先頭は
(略)/home/takehiko/.irbrc:2:in `require': (略)lib/ruby/gems/1.9.1/gems/wirble-0.1.2/wirble.rb:141: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n' (SyntaxError) when ':': state << :symbol ^
とのことで,該当箇所(141行目)の前後を見てみると,
case state[-1] when nil case c when ':': state << :symbol when '"': state << :string when '#': state << :object when /[a-z]/i state << :keyword repeat = true when /[0-9-]/ state << :number repeat = true when '{': yield :open_hash, '{'
となっていました.「when 式:」のコロンがまずいのですね.
Emacsのquery-replaceを利用して,慎重に,書いてはいけない「:」を「;」に置き換えてから*1.Ruby 1.9で厳格化したということでしょうか.
*1:「: 」を「; 」に置き換えればいいようです.12箇所ありました.),irbを実行すれば,うまくいきました. その直後,仕事用の自作スクリプトにも同じエラーが多数あったのにはびっくり. 一つ一つ手直ししましたが…あのRuby 1.9の簡易lintにチェック項目を追加したいものです. C言語のswitch〜caseでは「case 値:」と,コロンをつける必要があったので,それに引きずられたわけですが,それにしても,Rubyのマニュアルについて,「when 式:」とするような記述は,探した限りで見つかりませんでした((http://www.kansai.anesth.or.jp/gijutu/ruby/man-z1/refm0021.htmlには,「when 式;」とする例があります.現在では,例えばhttp://doc.loveruby.net/refm/api/view/spec/controlを見ると「when 式 then」を使ったコードに置き換わっています.