けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :7706 ] the message: "[ruby-list:7706] Re: dir search ",
on Apr/22 12:19(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>|以前に思ったことですが、lib/find.rb って、シンボリックリンクを検査して
>|いて、そういうのはメンテナンスの道具とか組み立てるにはいいのかもしれま
>|せんが、ふつうのアプリケイションでは余計なお世話という感じがしませんか。
>
>言われてみればその通りです.この部分の元のコードを書いた石塚
>さんの真意は分かりませんが,外しても良いんじゃないかと思いま
>す.シンボリックリンクを除外したければpruneが使えるわけです
>から.

今から推測するにですね.

1. findコマンドはデフォルトでシンボリックリンクはたどらない.
2. 単純に, 実現するとシンボリックリンクは無限ループに入る可能性がある.
3. pruneは後からついかされた機能

などの理由からだと思います.

で, 他にもいろいろと欲しい機能があると思って, 大部以前にFindクラスなる
ものを作りました.

以下のような感じです.

# Usage:
#	require "find.rb"
#
#	Find.find('/foo','/bar') {|f| ...}
#  or
#	find = Find.new('/foo', '/bar')
#	for f in find
#          ...
#       end
#
# メソッド:
#    Find.new
#    Find.find
#    Find.grep
#    Find.members
#    Find#ifnotopen
#    Find#each
#    Find#prune
#    Find#break
#    Find#depth_first(TRUE)
#    Find#directory_first(TRUE)
#    Find#follow(TRUE)
#
#    directory_last: ディレクトリはその要素を評価した後に評価する.
#    depth_first:    深さ優先探索
#    follow:         シンボリックリンクをどうするか?
#
#    can not open dir: の時のフックをどうするか??

でも, そのプログラムがどのくらいできているのか覚えていませんので(^^;;; 
整備しますのでもうちょっと待って下さい. 

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju / rational.com <<---