[ruby-list:8003] Re: Dir.open orderでFile.openやDir.openがイテレータと
して使えるのを知りました。(まだman-1.1cに反映されてないようですが)

その場合、現在イテレータの返り値はensureによってcloseされたFileまたは
Dirのインスタンスなのですが、これはイテレータブロックのかえす値の方が
便利ではありませんか?

もしそうなれば、[ruby-list:8003]でまつもとさんが示されたコード

>   ary = nil             # need to declare
>   Dir.open(".") do |d|
>     ary = d.collect{|f| [f, File.size(f)]}.sort{|a,b| a[1] <=> b[1]}
>   end

は

 ary = Dir.open(".") {|d|
         d.collect{|f| [f, File.size(f)]}.sort{|a,b| a[1] <=> b[1]}
       }

とちょっとすっきり書けます。

それから、この事を調べている時に気がついた事ですが、IO#closed?があるよ
うにDir#closed?もあるべきだと思います。

--
			   稲葉 浩人 (inaba / st.rim.or.jp)