From: "NARUSE, Yui" Date: 2009-11-03T23:18:49+09:00 Subject: [ruby-dev:39625] Re: [Feature:trunk] Dir instance methods for relative path 成瀬です。 Yukihiro Matsumoto wrote: > まつもと ゆきひろです > > In message "Re: [ruby-dev:39620] Re: [Feature:trunk] Dir instance methods for relative path" > on Tue, 3 Nov 2009 12:57:58 +0900, KOSAKI Motohiro writes: > > |単純な疑問として、最初に思ったのは自分が相対パスでファイルを > |開きたい状況になったときに、「まっさきに調べるのがDirクラスのAPIリファレンスか?」 > |というとNOだと思ったからです。 > > そうですよねえ。 そもそも、根本的に openat の API って実装の都合が出過ぎていませんかね。 C 言語の関数ならばともかく、Ruby の API としては、 もうちょっとユースケースベースの API にしないと使われない気がします。 (使うべき人が使う API でいいやと割り切るという考えもあるでしょうが) 例に出されているテンポラリディレクトリの削除については、 とりあえずどっかしらに用意して、それを fileutils で使えばいいのでしょうが、 > ./ruby -v -e 'p Dir.open("ext"){|d|d.open("extmk.rb"){|f|f.gets}}' の場合だと、人工的な例を言うのを差し引いても、 一般の人が使ってくれるとはなかなか考えづらいように感じます。 あとは、そのディレクトリの下の d.open("some_directory"){|dd| ...}もあるなぁとか。 っと思ったけど、 > ./ruby -v -e 'p open(["ext", "extmk.rb"]){|f|f.gets}}' > ./ruby -v -e 'p open([dir, "extmk.rb"]){|f|f.gets}}' を許すなら join の手間が省けるので使ってくれるかなぁ。 これ以外だと、__DIR__ と絡めるとかですかねぇ。 -- NARUSE, Yui