Подтвердить что ты не робот

Следует ли использовать тире или подчеркивания при назначении драгоценного камня с более чем одним словом?

Я смущен тем, что означает соглашение об именах драгоценных камней, когда имя драгоценного камня содержит более одного слова.

  • мышление-sphinx - это имя драгоценного камня, но базовый *.rb файл для этого драгоценного камня - lib/thinking_sphinx.rb(подчеркивание)

  • act-as-taggable-on - это имя драгоценного камня, а базовый *.rb файл называется lib/actions-as-taggable-on.rb(дефисы)

  • factory_girl использует символ подчеркивания как в имени gem, так и в имени базового файла *.rb

Имеет ли значение, если использовать символы подчеркивания или дефисы? Существует ли какой-либо новый консенсус здесь?

4b9b3361

Ответ 1

У Эрика Ходеля есть запись в блоге по этому вопросу: Рекомендация именования проектов

Рельсы затвердели соглашение сопоставление имен классов CamelCase с подчеркнутые имена файлов (класс IMAPProcesor определяется в imap_processor.rb). Использование подчеркнутых названия драгоценных камней облегчают людям выяснить, какой файл требуется (тот же как название проекта) или какой класс имя, которое нужно искать в ri.

Если у меня есть плагин или расширение Неправильное обращение к названию подпроектов с тире. Если бы я хотел добавить новую обработчик imap_to_rss для банка Chase электронной почты, драгоценный камень будет назван imap_to_rss-погоня.

Ответ 2

Следуя советам здесь, вот таблица того, как все сломается.

|     Gem name        |   Require statement          | Main class or module  |
|:--------------------|:-----------------------------|:----------------------|
|fancy_require        |require 'fancy_require'       | FancyRequire          |
|ruby_parser          |require 'ruby_parser'         | RubyParser            |
|net-http-persistent  |require 'net/http/persistent' | Net::HTTP::Persistent |
|rdoc-data            |require 'rdoc/data'           | RDoc::Data            |
|autotest-growl       |require 'autotest/growl'      | Autotest::Growl       |
|net-http-digest_auth |require 'net/http/digest_auth'| Net::HTTP::DigestAuth |