Create  Edit  Diff  FrontPage  Index  Search  Changes  Login

The Backyard - UsingStringIO Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

Great thinking! That really bearks the mold!!StringIOの使い方

!!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