k-yamadaのブログ

プログラミングのメモ

JRubyでsystemuを自作する

JRubyのsystemu関数の動きがおかしかったので、自作しました。
本来のsystemu関数はコマンドを引数で受け取り[終了コード, 標準出力, 標準エラー出力]を配列で返しますが、以下は少し仕様変更して、[標準出力,標準エラー出力]のみ返します。

require 'open3'
def self.systemu2(command)
  Open3.popen3(command) do |stdin, stdout, stderr|
    return [stdout.read, stderr.read]
  end
end