2011年2月 9日

[ruby-list:47857] Re: ruby1.9での文字列について

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@xxxxx>:
> それで、プログラムを実行するとき、ruby1.9のときは、force_encodingをして、ruby1.8のときはそれをしないように
> したいと思いましたが、実行中のrubyにそれを判断する方法をしりたいのですが、なにか特別な変数などあるのかと
> 思いましたが見つけられませんでした。

--
Shota Fukumori a.k.a. @sora_h - http://codnote.net/


投稿者 xml-rpc : 2011年2月 9日 10:56
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/101877
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。