■ このスレッドは過去ログ倉庫に格納されています
Rubyについて Part46
- 1 :デフォルトの名無しさん:2011/12/26(月) 00:26:17.77
- オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
= 前スレ
Rubyについて Part 45
http://toro.2ch.net/test/read.cgi/tech/1317639700/
- 666 :デフォルトの名無しさん:2012/02/20(月) 18:56:55.65
- >>641
IOのバグってどんなのでした?
ruby 1.9.3p125 (2012-02-16 revision 34643) [i386-mingw32]をビルドしてみたところ
・テキストモードなのにLFしか出力しない
・なんだかIOが遅い
・File.expand_path のエンコーディング
っていうのは直ってるみたいなんですけど
・File.chmodで日本語がエラー
・IO.foreach('hogehoge',mode:'rb') がバイナリモードにならない(2.0dev snapshotでも直ってねー)
・Dir.openに \区切りのパスを渡すと開けないことがある(2.0dev snapshotでも直ってねー)
ってのは未修正でした
File.chmodで日本語が通らないとFileUtil(src,dst, preserve:true) がエラーになるんだよね
あとなんかあったかな
・IOの直接ファイル入力メソッド(read,readlines,foreach)で オプション binmode:true がエラーになる
ってのは仕様の変更?
2.0でもダメだった、1.9.2なら受け付けるんだけど
- 667 :641:2012/02/20(月) 21:26:30.79
- >>666
俺が待ってるのは
・IO.foreach('hogehoge',mode:'rb') がバイナリモードにならない(2.0dev snapshotでも直ってねー)
- 668 :デフォルトの名無しさん:2012/02/20(月) 21:43:17.16
- ちゃんとバグ報告しているか?
- 669 :デフォルトの名無しさん:2012/02/20(月) 22:53:02.23
- IO.foreachはmodeというキーワードを受け付ける仕様になってないんじゃないの
Windowsで試してないけど、open_args:["rb"]とかどうかね
modeを受け付けないなんて仕様バグだ!open_argsなんてキモイ!という主張ならわからんでもない
- 670 :669:2012/02/20(月) 22:58:36.49
- ああごめん適当なこといったあげく下げ忘れ
open_key_argsは中でrb_io_open呼んでるんだからmode受け付けないとおかしいわな
- 671 :デフォルトの名無しさん:2012/02/21(火) 00:35:32.32
- 1.9.2だと
IO.foreach('hogehoge',mode:'rb') がちゃんとバイナリモードになるんですよ
ちょっと訂正
File.chmodで日本語が通らないとFileUtil.cp(src,dst, preserve:true) がエラーになる
>>666 は全部Windows環境だけの話ですから
あまり影響を受ける人がいないのでしょうか
>>668
小心者なので
そんなことはできません
- 672 :デフォルトの名無しさん:2012/02/21(火) 11:37:10.02
- 小飼弾の喋り方は気持ち悪すぎなんだよ
どっから声出してんだよ
- 673 :デフォルトの名無しさん:2012/02/21(火) 12:36:44.99
- LLバトロワスレ逝けやゴミカス >>672
- 674 :デフォルトの名無しさん:2012/02/21(火) 12:47:58.00
- >>673
まだ表示してるの?
2chではまともな文脈がつかない単語なのに
- 675 :デフォルトの名無しさん:2012/02/21(火) 18:29:13.22
- 訂正
IO.foreach がバイナリモードにならないのはEnumeratorだけでした
普通のブロック内ではバイナリモードになってました
IO.foreach('hogehoge',mode:'rb').first.match(/\r/) #だとバイナリモードにならないのでマッチしない
IO.foreach('hogehoge',mode:'rb'){|line| break line.match(/\r/)} #はちゃんとバイナリモードになるのでマッチする
で、原因はソースの順序が一行前後してるだけ
先にハッシュオプション取り除いてから
Enumeratorを生成しちゃってるので
ハッシュオプションがEnumeratorには反映されない
ブロックが与えられているとEnumeratorの生成はされずに
ハッシュオプションを使ってIOが生成される
Ruby 1.9.3-p125のio.cの8489行と8490行を入れ替えると直る
binmode:trueがエラーになるのはバグみたい
mode指定が無いときに、デフォルトでテキストモードが設定されてしまい
そのあとで binmode:true の解釈時にバイナリモード指定とバッティングしてエラーになる
そもそもはtextmode:trueとbinmode:trueを同時指定したときのエラーだったみたい
220 KB
★スマホ版★
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 05.05 2022/08/31 Walang Kapalit ★
FOX ★