From: Nobuyoshi Nakada Date: 2010-04-30T09:07:19+09:00 Subject: [ruby-dev:41102] Re: [ruby-cvs:34762] Ruby:r27549 (trunk): * test/test_open3.rb (test_commandline): use dump instead of なかだです。 At Thu, 29 Apr 2010 20:31:51 +0900, Tanaka Akira wrote in [ruby-dev:41100]: > これはあまり良くないように思います。 > > String#dump は Ruby が解釈する文字列リテラルを生成するものであって、 > シェルが解釈する文字列を生成するものではありません。 良くないことには同意します。 > ここでは Open3.popen3 に渡す、つまりシェルに解釈してもらう文字列を > 生成しているので、String#dump は用途にあっていません。 そもそもここでは何をテストしようとしているんでしょうか。 Shellwords.joinがsystemに渡せる文字列を作ること? 単に引数を含む コマンドラインを実行できるかというテストなら、これでいいのではな いかと思いますが。 commandline = "echo quux" Open3.popen3(commandline) {|i,o,e,t| assert_equal("quux\n", o.read) } > 現状 shellwords が Windows で適切に動かないというなら、 > shellwords を直すのが適切なんじゃないでしょうか。 Windowsでは「適切なシェルエスケープ」というものが一意に決まらな いというのが根本的な問題ではないかと。 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦