けいじゅ@SHLジャパンです. 

In [ruby-list :00318 ] the message: "[ruby-list:318] Re: Reqest for
Find and BUG report ", on Jul/19 17:28(JST) matz / caelum.co.jp
(Yukihiro Matsumoto) writes:

>あんまりいっぺんにいろんなことが書いてあるので,びっくりして
>しまいそうですが,一つずつ答えます.

後半は難しいです(^^;;

>まったくです.GCで回収されたディレクトリオブジェクトはクロー
>ズされますが,問題が残ることには変わりありませんね.

へー. そういうふうになっていたのですか. ここで質問:

File以外のクラスのインスタンスでもGCされる時に, あるメソッドが実行され
るとかいうことはあるのですか?

>わかりました.これを元にしたものに変更します.直すとしたら
>
>  * 「extend Find」は歴史的な名残なので外す

何これ? 

>  * 「not (file = ary.shift).nil?」は「file = ary.shift」に

そうか... 何か面倒臭いと思っていたのでした.

>?sはサイズです.シンボリックリンクは?lです.もっともバグって
>いることには変わり無いですけど.

?s はサイズでしたか? おかしいとは思ったんですよ.

>止めるといいますとイテレータの実行を中断するだけで良いんです
>か? それならbreakを使ってください.-pruneみたいにこの枝の探
>索は打ち切るが,他の枝の検索を続けるというのはちょっと面倒だ
>と思います.が,方法はあります(下記参照).

-prune のいみです.

>rubyにはcatch/throwがありますので,それを使えば可能かも知れ
>ませんねえ.
>
>File#findのwhileループのすぐ内側に
>
>  catch(:prune) {
>  }
>
>を置いて
>
>  def prune
>    throw :prune, nil
>  end
>
>とすれば目的が達成できそうに思います.ちょっと遅いかも知れま
>せんけど.

遅くてもいいので, それを実装した形でFindをリリースして下さいませ. 

ただ, ちょっと気になるのが, このままのpruneだと 入れ子のファインドがで
きなくない様な気がします. そんなことはないですか?

__
..........................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju / shljapan.co.jp <----