Я думаю, что еще более простым решением является использование File.dirname
:
2.3.0 :005 > Dir.pwd
=> "/Users/kbennett/temp"
2.3.0 :006 > File.dirname(Dir.pwd)
=> "/Users/kbennett"
2.3.0 :007 > File.basename(Dir.pwd)
=> "temp"
File.basename
возвращает компонент пути, который не File.dirname
.
Это, конечно, работает, только если спецификация файла абсолютная, а не относительная. Чтобы быть абсолютным, можно сделать следующее:
2.3.0 :008 > File.expand_path('.')
=> "/Users/kbennett/temp"
2.3.0 :009 > File.dirname(File.expand_path('.'))
=> "/Users/kbennett"