Доброго времени. Наверное многие не раз замечали вот такой вызов метода: 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 и снова исполним тот же файл: