Для файла, содержащего данный класс SomeCoolClass, какое имя файла будет правильным или стандартным?
1. somecoolclass.rb 2. some_cool_class.rb 3. some-cool-class.rb 4. SomeCoolClass.rb
или какая-то другая вариация?
Я заметил, что в Ruby stdlib используются версии 1, 2 и 3.

При использовании только Рубин (т.е. не Rails) именование является лишь условием. В Рельсы необходимо (почти) использовать соглашение с использованием подчеркивания.
Я думаю, что соглашение № 2 lowercase_and_underscore.rb более распространено и выглядит довольно хорошо, хотя в статье Здесь говорится, что lowercasenounderscore.rb - это соглашение Ruby.
Выберите либо, какое соглашение является более распространенным или какое вам больше нравится. Самое главное - это быть последовательным в рамках проекта.
Статья, которую вы процитировали для lowercasenounderscore.rb, старая, и я не видел, чтобы кто-то еще заявлял об этом как о соглашении. Подчеркивание почти повсеместно является стандартом.
Я бы порекомендовал символы нижнего регистра с подчеркиванием (цифра 2 в вашем вопросе). Верно, что эта схема именования является соглашением в Rails и не обязательна в проектах, отличных от Rails. Однако я бы все равно придерживался соглашения Rails, потому что большинство программистов Ruby, вероятно, в любом случае используют Ruby исключительно для Rails.
Не только это, но и подчеркивание является условием для большинства инструментов тестирования, интерфейсов плагинов и т. д. (Например, если у вас есть файл foo.rb и файл спецификации на spec/foo_spec.rb, Autotest запустит последний, когда первый изменится, и многие текстовые редакторы будут иметь ярлыки для переключения между ними.)
Я лично считаю, что дефис в качестве разделителя слов обеспечивает максимальную читаемость и типизируемость в целом, поэтому я рекомендую это там, где это возможно (в некоторых контекстах дефис не может использоваться, например, в идентификаторах на большинстве языков). Следует иметь в виду одну важную вещь: выбранная вами схема будет иметь отношение к оператору 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'
К сожалению, небольшая горстка библиотек нарушает это простое правило удобства использования. Не будь одной из этих библиотек. :)
my-proj
├── README
├── lib
│ └── some_cool_class.rb
└── test
└── some_cool_class_test.rb
Gemfile также находится на верхнем уровне при использовании Bundler или Rails.
Слово из Ruby Gems - использовать символы подчеркивания (также известные как вырезание ящиков или змеи) для имен файлов, а имена Gem: Последовательное именование.