|
[ruby-list:43075] YAMLライブラリのバグ?: msg#00060lang.ruby.japanese
ANN以外で初めて投稿します。 Railsでデータベースを切り替える際に、YAMLへ退避する方法を試していて、日 本語のTextがうまくエンコードされないのでYAMLライブラリのソースを見ていま したが、バイナリとしてエンコードするか否かの判定で、「統計的手法?」を採っ ていると思われる部分で、おかしな点を発見しました。 浮動小数点を基準値として比較を行っているのですが、比較値の計算を整数のま ま行っているため、決して真にはならない箇所がありました。 下記のように.to_fをつけるべきだと思いますが、いかがでしょうか? --- c:\ruby-1.8.5-p2\lib\yaml\rubytypes.rb Tue Jan 10 12:50:27 2006 +++ c:\ruby\lib\ruby\1.8\yaml\rubytypes.rb Fri Dec 22 22:39:22 2006 @@ -143,7 +143,7 @@ to_yaml_style or not to_yaml_properties.empty? or self =~ /\n.+/ end def is_binary_data? - ( self.count( "^ -~", "^\r\n" ) / self.size > 0.3 || self.count( "\x00" ) > 0 ) unless empty? + ( self.count( "^ -~", "^\r\n" ).to_f / self.size > 0.3 || self.count( "\x00" ) > 0 ) unless empty? end def String.yaml_new( klass, tag, val ) val = val.unpack("m")[0] if tag == "tag:yaml.org,2002:binary" ------------- いたさん http://rails.to/
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:43074] Ruby 1.8.5-p12 released, Urabe Shyouhei |
|---|---|
| Next by Date: | [ruby-list:43076] [ANN] Ruby/SDL Starter Kit, 原 悠 |
| Previous by Thread: | [ruby-list:43074] Ruby 1.8.5-p12 released, Urabe Shyouhei |
| Next by Thread: | [ruby-list:43076] [ANN] Ruby/SDL Starter Kit, 原 悠 |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |