前のラボで機器データ解析用に作っておいたプログラムが、Mac OS X を 10.9 (Marvericks) にアップグレードしたところ動作しなくなったという報告を受け取った。どうやら、OS 付属の Ruby が 2.0 にアップデートされたためらしい。
"A"[0] # 65
とできたのだが、Ruby 1.9 以降では、これは
"A"[0, 1] # "A"
と同じ意味になり、substring の役割を果たすようになっている。代わりに
"A".ord # 65
が用意されたが、これは 1.8.x では使えない。
if String.method_defined?('ord') class String def ord self[0] end end end
と自分で定義して ord を使うか、
"A".unpack('C')[0]
とすればよい。