The Backyard - UsingStringIO Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
!!Ruby 1.8.4では以下の方法はエラー
io = StringIO.new('')
...
io.close
buff = io.string # エラー
そのため、以下のいずれかの方法を利用する。
!!取り出す文字列の用意とStringIOの生成を同時に行う
io = StringIO.new(buff = '')
io.write 'foo'
...
io.close
# buffを利用する
!!ブロックを使う
require 'stringio'
require 'zlib'
def to_zip(data, &p)
StringIO.open('', 'w') do |out|
zip(data, out)
p.call(out.string)
end
end
def zip(data, out)
gz = Zlib::GzipWriter.new(out)
gz.write(data)
gz.finish
end
to_zip('abcdef') do |x|
print x
end
!!元の日記
http://www.artonx.org/diary/20050811.html
http://www.artonx.org/diary/20050812.html