logo       

[ruby-list:42075] Re: puts,printの出力をファイルにも出力するには: msg#00106

lang.ruby.japanese

Subject: [ruby-list:42075] Re: puts,printの出力をファイルにも出力するには

永井@知能.九工大です.

From: rubikitch <rubikitch-X+L+6nJQZ58h9ZMKESR00Q@xxxxxxxxxxxxxxxx>
Subject: [ruby-list:42073] Re: puts,printの出力をファイルにも出力するには
Date: Fri, 21 Apr 2006 14:11:06 +0900
Message-ID:
<20060421.141104.96235729.rubikitch-X+L+6nJQZ58h9ZMKESR00Q@xxxxxxxxxxxxxxxx>
> とてもつまらない方法ですが、ファイルに書き出した後で標準出力に書き出すというのは?
> この方法でprint,puts,systemなどの出力がファイルに書き出されます。

こんなの↓でも十分のような気がするのですが,ダメですかね?
----------------------------------------------------
class FakeTee
def initialize(io)
@io = io
end
def method_missing(name, *args)
@io.__send__(name, *args)
STDOUT.__send__(name, *args)
end
def write(*args)
@io.write(*args)
STDOUT.write(*args)
end
end


io = File.open('/tmp/asdf', 'w')
tee = FakeTee.new(io)
$stdout = tee

p [1,2,3]
puts 'hogehoge'
print "fugafuga\n"

io.close
----------------------------------------------------

FakeTee#write をわざわざ書いているのは,
これがないと $stdout に代入させてもらえないためです.
--
永井 秀利 (九工大 知能情報)

nagai-iKxUiVHJP4pSXnIrXG/8Ww@xxxxxxxxxxxxxxxx




<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise