2013-06-13 8 views
0

Какова самая стандартная символика Ruby для именования переменных, содержащих имена файлов, имена файлов с путями и экземплярами файлов? Совершенно ясно, как это сделать:Символы объектов файловой системы

file_name = "bar.txt" 
file_name_with_path = "foo", file_name 
file = File.open(file_name_with_path) 

Но это слишком долго. Это может быть и речи, чтобы использовать :file_name_with_path в определении метода:

def quux(file_name_with_path: "foo/bar.txt") 
    # ... 
end 

Столкнувшись это за сотый раз, я понял, что укорачивание конвенции необходимы. Я начал делать конвенции личные укорочения: :file_name =>:fn, :file_name_with_path =>:fnwp, :file всегда относится к File например, :fn никогда не включает в себя путь, означает :file_name_with_absolute_path и т.д. Но все должны быть направлены на это, так что я задаю вопрос: Есть ли общественное соглашение для этого? В частности, существует ли для этого код Rails?

ответ

1

Но каждый должен быть перед этим ...

Нет, не очень, потому что вы действительно чрезмерно думать, что это.

Просто используйте file:, или filename:. Это не имеет значения независимо от того, содержит ли ваш файл относительный или абсолютный путь, или путь содержит каталоги, и ваш код должен отражать это. Путь к файлу - это просто путь к файлу, и все пути должны обрабатываться идентично вашим кодом: он просто открывает файл и вызывает ошибку, если он не может.

Вы можете использовать утилиты файловой системы для извлечения каталогов и базовых имен из пути, и они будут нормально работать на любом пути, независимо от наличия каталогов, независимо от того, какой путь является абсолютным или относительным. Это просто не имеет значения.

+0

+1 для подтверждения моего собственного подозрения, что я его переусердствовал. Тем не менее, [Ruby docs последовательно] (http://ruby-doc.org/core-2.0/File.html) использует 'file_name' ... –

+0

Затем выберите' имя_файла' вместо моего предложенного 'filename'. Дело в том, что вам не нужны * разные * имена для путей с относительным/абсолютным/каталогом. – meagar

+0

Есть что-то в том, что вы только что сказали. –

Смежные вопросы