sora_hです。 rubyには一部jsonなどの外部プロジェクトを取り込んでいるのですが、jsonのテストで1.9のEncodingに 対応するときには、::Encoding クラスが存在するかを確認しています。 if ::Encodingやunless ::Encodingで判定できるかと。バージョン番号を確認するより良い判定方法だったはず。 (たしか別の処理系に考慮。ただし自分で定義してる方は知らない。) 個人的に思ったのは、rubikitchさんのは実行毎にifを走らせるので、 if "".respond_to? :force_encoding def force_encoding_maybe(enc) force_encoding enc end else def force_encoding_maybe(enc) self end end のほうが良いかな。同じ考え方でいくと、 "".respond_to? :force_encodingを ::Encodingに置きかえれば良いと思います。 参考にしてください。 2011/2/9 Nobuyuki Inaba <nobuyuki.inaba / gmail.com>: > それで、プログラムを実行するとき、ruby1.9のときは、force_encodingをして、ruby1.8のときはそれをしないように > したいと思いましたが、実行中のrubyにそれを判断する方法をしりたいのですが、なにか特別な変数などあるのかと > 思いましたが見つけられませんでした。 -- Shota Fukumori a.k.a. @sora_h - http://codnote.net/