山本です。
少し疑問が出たので、質問させてください。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/fnmatch.3.html
で [/] のような書き方が文法エラーだと書いてあるのを発見したんですが、
ruby で { } や [ ] に '/' を含めることができるのは仕様なんでしょうか?
まだ考えがまとまってませんが、個人的には
含めることができない(例外を出す)ほうがいい気がします。
また、これに関係して、
E:\ruby-cvs>miniruby -ve "puts File.fnmatch('hoge[/]hoge', 'hoge/hoge')"
ruby 1.9.0 (2004-02-08) [i386-bccwin32]
true
E:\ruby-cvs>miniruby -ve "puts File.fnmatch('hoge[/]hoge', 'hoge[/]hoge')"
ruby 1.9.0 (2004-02-08) [i386-bccwin32]
false
E:\ruby-cvs>miniruby -ve "puts Dir.glob('hoge[/]hoge')"
ruby 1.9.0 (2004-02-08) [i386-bccwin32]
hoge[/]hoge
で、File.fnmatch と Dir.glob でパターンの解釈が異なっていて、まずい状態です。
# File.fnmatch は "/" を領域指定と解釈。
# Dir.glob は "hoge[" と "]hoge" がパス区切りされていると解釈。