ファイル名をその構成要素に分割する

p File.basename("foo/bar.c") #=> "bar.c"
p File.basename("foo/bar.c", ".*") #=> "bar"
p File.extname("foo/bar.c") #=> ".c"
p File.dirname("foo/bar.c") #=> "foo"

こんな便利なものがあったとは.

いままで,こんな感じのコードをわざわざ書いていた…

p (/\/([^\/]*?)\z/ =~ fname)? $1: fname
p (/\.[^.]+\z/ =~ fname)? $&: ""
p (/(.*)\// =~ fname)? $1: ""