[#38392] Enumerable#gather_each — Tanaka Akira <akr@...>

ときに、複数行をまとめて扱いたいことがあります。

47 messages 2009/05/09
[#38394] Re: Enumerable#gather_each — ujihisa <ujihisa@...> 2009/05/09

ujihisaと申します。

[#38400] Re: Enumerable#gather_each — Yukihiro Matsumoto <matz@...> 2009/05/09

まつもと ゆきひろです

[#38399] Re: Enumerable#gather_each — "Akinori MUSHA" <knu@...> 2009/05/09

At Sat, 9 May 2009 15:30:20 +0900,

[#38405] Re: Enumerable#gather_each — Tanaka Akira <akr@...> 2009/05/10

In article <86r5yy2nrg.knu@iDaemons.org>,

[#38417] Re: Enumerable#gather_each — "Akinori MUSHA" <knu@...> 2009/05/10

At Sun, 10 May 2009 10:08:47 +0900,

[#38524] [Bug #1503] -Kuをつけた時、/[#{s}]/n と Regexp.new("[#{s}]",nil,"n") で実行結果が異なる — sinnichi eguchi <redmine@...>

Bug #1503: -Kuをつけた時、/[#{s}]/n と Regexp.new("[#{s}]",nil,"n") で実行結果が異なる

8 messages 2009/05/22

[ruby-dev:38407] Re: Enumerable#gather_each

From: Tanaka Akira <akr@...>
Date: 2009-05-10 01:35:36 UTC
List: ruby-dev #38407
In article <4A06175D.4060609@airemix.jp>,
  "NARUSE, Yui" <naruse@airemix.jp> 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]

In This Thread