From: Tanaka Akira Date: 2009-05-10T10:35:36+09:00 Subject: [ruby-dev:38407] Re: Enumerable#gather_each In article <4A06175D.4060609@airemix.jp>, "NARUSE, Yui" writes: > で、考えたのですが、ChangeLogやmboxの場合に対応するには、 > 直前の要素の分類結果がわかればそれで足りるんじゃないですかね。 直前のはいらないんじゃないでしょうか。 ある並びがあって、そのなかでのまとまりの先頭要素が判別できれ ば、そこで区切ればいいわけです。仮に slice_by とすると以下の ような感じになります。 module Enumerable def slice_by i = 0 self.gather {|e| i += 1 if yield e; i } end end open("mbox") {|f| f.slice_by {|l| l.start_with? "From " }.each {|lines| pp lines } } -- [田中 哲][たなか あきら][Tanaka Akira]