id:mrkn がとちぎRuby会議04で話していたので、realはRationalに変換した。わたし、やさしい。
value = if $1 case $1 when 'key', 'string' ($2.include?('&')) ? CGI::unescapeHTML($2) : $2 when 'data' Base64.decode64($2) when 'date' DateTime.parse($2) when 'real' $2.to_r when 'integer' $2.to_i end elsif $3 == 'true' true elsif $3 == 'false' false else raise RuntimeError end