それぞれに含まれるファイルを使用してフォルダーの配列を作成しようとしています。したがって、ディレクトリ構造が次の場合:
DirA
|- FileA
\- FileB
DirB
\- FileC
そして、私はこの配列を与えられます:
files = ["DirA/FileA", "DirA/FileB", "DirB/FileC"]
私はこのようなハッシュを構築しようとしています
{DirA => [FileA, FileB], DirB => [FileC]}
今、私はそれをかなり非ルビッシュな方法だと思う方法でやっています(Stringには親ディレクトリをフェッチするメソッドが定義されていると仮定します):
h = {}
files.each do |f|
parent = f.getParentDir
if not h[parent] then h[parent] = [] end
h[parent].push f
end
もっとエレガントな方法はありますか?