Ruby: абсолютный путь к файлу

ruby-absolute-pathДоброго времени. Наверное многие не раз замечали вот такой вызов метода: File.expand_path(‘../boot’, __FILE__), например в rails приложении в файле config/application.rb. Согласно документации, метод File::expand_path принимает в качестве первого аргумента путь и возвращает строку с его абсолютным значением. Например, пусть у нас есть файл code.rb в каталоге /home/helo/learning/ruby с таким содержимым:

path = File.expand_path(".")
p path

Перейдём в каталог /home/helo/learning/ruby и выполним наш файл:

ruby code.rb

В результате получаем строку: «/home/helo/learning/ruby». Это так, потому что File::expand_path вернул нам абсолютное значение переданного в аргументе пути (в данном случае «.»). Теперь поднимемся на два уровня выше до /home/helo и снова исполним тот же файл:

Читать далее