Ruby で標準出力を取得する
Ruby で標準出力された値を取得したかったんですが、次のように実現できました。
コード
require "stringio" def func p (1..10).select{ |it| it % 2 == 0 } end # 標準出力先を指定 $stdout = StringIO.new # 標準出力があるメソッドの呼び出し func func func # 出力された値を取得 result = $stdout.string # 出力先を戻す $stdout = STDOUT puts result
出力
[2, 4, 6, 8, 10] [2, 4, 6, 8, 10] [2, 4, 6, 8, 10]
$stdout
に任意の StringIO
を設定すればよいみたい。