Эквивалент dirname PHP(__FILE__) в Ruby?

#php #ruby #programming-languages

#php #ruby #языки программирования #программирование-языки

Вопрос:

Что является эквивалентом PHP dirname(__FILE__) в Ruby?

Комментарии:

1. вы пробовали phptoruby.com/submit-code ?

2. отличный сайт! но я не смог найти dirname ( ФАЙЛ ) там

3. если вы используете PHP 5.3, там также есть, __DIR__ поэтому вам не нужен dirname() вызов функции — см. php.net/manual/en/language.constants.predefined.php

4. нет, но вы можете отправлять свои запросы на. Просто еще один ресурс!

5. @Spudley Хороший совет, но не очень подходящий к вопросу. 🙂

Ответ №1:

С помощью @potac и @jakub-hampl я пришел к

 File.dirname(File.expand_path(__FILE__))
  

Это дало мне именно то, что я хотел

Ответ №2:

 puts File.expand_path(__FILE__)
  

Я не знаком с Ruby (но с PHP), и я нашел это в Rails для разработчиков PHP

Комментарии:

1. которые возвращают путь к файлу, а не к папке, в которой он присутствует. Спасибо, это помогло мне добраться до этого. File.dirname(File.expand_path( ФАЙЛ )) . Спасибо!

Ответ №3:

Как насчет:

 File.dirname __FILE__
  

Комментарии:

1. помогает, но только с помощью FILE возвращает полный путь к файлу

2. @JimRubenstein это Ruby, скобки не требуются. (И в зависимости от вашего руководства по стилю, они могут быть запрещены в некоторых ситуациях).

3. Извините за придурковатость, так получилось, что я только что закончил тираду о том, как я ненавижу тот факт, что Ruby позволяет использовать parens необязательными. Я понимаю выразительность в некоторых ситуациях, но это действительно вносит массу путаницы в код. Разница между свойством объекта и методом объекта становится неоднозначной. Я буду 1, потому что я нашел применение в ответе, я просто хотел бы, чтобы вы использовали скобки вместо того, чтобы продвигать языковую «функцию» в этом случае

Ответ №4:

Начиная с Ruby 2.0, в Ruby также есть __dir__ метод, который напрямую реализует то, о чем вы просите.

Ответ №5:

Dir.pwd является ли эквивалентом PHP для dirname(__FILE__)

http://ruby-doc.org/core/Dir.html#method-c-pwd

Комментарии:

1. На самом деле, нет. Это возвращает текущий рабочий каталог процесса, а не файл, который был вызван.