rubyのIOにはいくつもメソッドがある。each/readline/gets 系統とポインタ系どうも相性が良くない。
getc/ungetc はあるけど、gets/ungetsがない。こまったので代案を考えた
require 'stringio' str =<<EOS 見出し記法 *〜〜 日記に見出し(h3)を付けます 時刻付き見出し記法 *t*〜〜, *t+1*〜〜 見出しに編集時刻を保存し表示します name属性付き見出し記法 *name*〜〜 見出しに好きな name 属性をつけます カテゴリー記法 *[〜〜]〜〜 日記にカテゴリーを設定します EOS sio = StringIO.new str while( sio.gets ) # do something.. sio.seek(-($_.length),IO::SEEK_CUR) # do something... end
ちゃんとやらないと無限ループになったりする。