Стандартные соглашения об именах файлов в Ruby

Для файла, содержащего данный класс SomeCoolClass, какое имя файла будет правильным или стандартным?

 1. somecoolclass.rb
 2. some_cool_class.rb
 3. some-cool-class.rb
 4. SomeCoolClass.rb

или какая-то другая вариация?

Я заметил, что в Ruby stdlib используются версии 1, 2 и 3.


person Community    schedule 21.10.2008    source источник


Ответы (4)


При использовании только Ruby (т.е. не Rails) именование является лишь условием. В Rails соглашение об использовании подчеркивания необходимо (почти).

Я думаю, что соглашение № 2 lowercase_and_underscore.rb более распространено и выглядит неплохо, хотя статья Здесь говорится, что lowercasenounderscore.rb - это соглашение Ruby.

Выберите, какое соглашение является более распространенным, или какое вам больше нравится. Самое главное - быть последовательным в рамках проекта.

person Daniel Beardsley    schedule 21.10.2008
comment
Слово из Ruby Gems заключается в использовании подчеркивания (также известного как вырезание из ящиков или змей) для имен файлов и имен Gem: Согласованное именование. - person stevenharman; 04.08.2011
comment
Статья, которую вы процитировали для lowercasenounderscore.rb, старая, и я не видел, чтобы кто-то еще заявлял об этом как о соглашении. Подчеркивание - это почти всегда стандарт. - person SFEley; 17.05.2012

Я лично считаю, что дефис в качестве разделителя слов обеспечивает максимальную читаемость и типизируемость в целом, поэтому я рекомендую это там, где это возможно (в некоторых контекстах дефис не может использоваться, например, в идентификаторах на большинстве языков). Следует иметь в виду, что выбранная вами схема будет иметь отношение к оператору require, который пользователи будут использовать с вашей библиотекой, и вы хотите, чтобы имя гема отличалось от имени библиотеки.

Bad
# gem install my_cool_lib
require 'my-cool-lib'

# gem install MyCoolLib
require 'my_cool_lib'
Good
# gem install my_cool_lib
require 'my_cool_lib'

# gem install my-cool-lib
require 'my-cool-lib'

К сожалению, небольшая горстка библиотек нарушает это простое правило удобства использования. Не будь одной из этих библиотек. :)

person Pistos    schedule 21.10.2008

Я бы рекомендовал символы нижнего регистра с подчеркиванием (цифра 2 в вашем вопросе). Верно, что эта схема именования является соглашением в Rails и не обязательна в проектах, отличных от Rails. Тем не менее, я бы по-прежнему придерживался соглашения Rails, потому что большинство программистов Ruby, вероятно, в любом случае используют Ruby исключительно для Rails.

person Christoph Schiessl    schedule 21.10.2008
comment
Не только это, но и подчеркивание является условием для большинства инструментов тестирования, интерфейсов плагинов и т. Д. (Например, если у вас есть файл foo.rb и файл спецификации в spec/foo_spec.rb, Autotest запустит последний, когда первый изменится, и многие текстовые редакторы будут иметь ярлыки для переключения между ними.) - person SFEley; 17.05.2012

person    schedule
comment
Gemfile также находится на верхнем уровне при использовании Bundler или Rails. - person Ross Attrill; 26.09.2013