Ruby でランダムな平仮名の文字列を作る方法で悩む。別に、Ruby ではなく JavaScript 等でもいいのだが、せっかくだから Ruby で……と思っていたら詰まってしまった。
puts 12354.chr => RangeError
Integer#chr は 0 から 255 の範囲しかとらない。ではどうするかというと、pack を使えばいいようだ。
puts [12354].pack('U') => あ
で、完成スクリプトが
s = '' 4.times { s << [0x3041 + rand(0x3094 - 0x3041)].pack('U') } puts s
となる。
……と、ここまで書いていて思い出したのだが、このスクリプトはまさに "里見の謎型ネームジェネレータ" そのものではないか。里見の謎については Wikipedia を参照。